├── .clang-format ├── .gitattributes ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── .travis.yml ├── CMakeLists.txt ├── LICENSE.txt ├── README.md ├── build.sh ├── docs ├── IoCodingStandards.html ├── IoGuide.html ├── IoTutorial.html ├── docs.css ├── js │ ├── browser.js │ └── jquery.js └── reference │ ├── Apple │ ├── AppleSensors │ │ ├── AppleSensors │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Audio │ ├── LibSndFile │ │ ├── LibSndFile │ │ │ └── index.html │ │ ├── Sound │ │ │ └── index.html │ │ └── index.html │ ├── Ogg │ │ ├── OggPacket │ │ │ └── index.html │ │ ├── OggPage │ │ │ └── index.html │ │ ├── OggStreamState │ │ │ └── index.html │ │ ├── OggSyncState │ │ │ └── index.html │ │ └── index.html │ ├── PortAudio │ │ ├── AudioDevice │ │ │ └── index.html │ │ ├── AudioMixer │ │ │ └── index.html │ │ └── index.html │ ├── SampleRateConverter │ │ ├── SampleRateConverter │ │ │ └── index.html │ │ └── index.html │ ├── SoundTouch │ │ ├── SoundTouch │ │ │ └── index.html │ │ └── index.html │ ├── TagLib │ │ ├── TagLib │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Bridges │ ├── CFFI │ │ ├── CFFI │ │ │ └── index.html │ │ ├── CFFIPointer │ │ │ └── index.html │ │ └── index.html │ ├── ObjcBridge │ │ ├── ObjcBridge │ │ │ └── index.html │ │ └── index.html │ ├── Python │ │ ├── Python │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Compilers │ ├── Loki │ │ ├── Linker │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Compression │ ├── LZO │ │ ├── LZO │ │ │ └── index.html │ │ ├── LZODecoder │ │ │ └── index.html │ │ ├── LZOEncoder │ │ │ └── index.html │ │ └── index.html │ ├── Zlib │ │ ├── Zlib │ │ │ └── index.html │ │ ├── ZlibDecoder │ │ │ └── index.html │ │ ├── ZlibEncoder │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Concurrency │ ├── Thread │ │ ├── Thread │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Core │ ├── Core │ │ ├── Block │ │ │ └── index.html │ │ ├── CFunction │ │ │ └── index.html │ │ ├── Call │ │ │ └── index.html │ │ ├── Collector │ │ │ └── index.html │ │ ├── Compiler │ │ │ └── index.html │ │ ├── Coroutine │ │ │ └── index.html │ │ ├── Date │ │ │ └── index.html │ │ ├── Debugger │ │ │ └── index.html │ │ ├── Directory │ │ │ └── index.html │ │ ├── DynLib │ │ │ └── index.html │ │ ├── Error │ │ │ └── index.html │ │ ├── Exception │ │ │ └── index.html │ │ ├── File │ │ │ └── index.html │ │ ├── List │ │ │ └── index.html │ │ ├── Map │ │ │ └── index.html │ │ ├── Message │ │ │ └── index.html │ │ ├── Number │ │ │ └── index.html │ │ ├── Object │ │ │ └── index.html │ │ ├── Profiler │ │ │ └── index.html │ │ ├── Sandbox │ │ │ └── index.html │ │ ├── Scheduler │ │ │ └── index.html │ │ ├── Sequence │ │ │ └── index.html │ │ ├── System │ │ │ └── index.html │ │ ├── WeakLink │ │ │ └── index.html │ │ └── index.html │ ├── Flux │ │ └── index.html │ ├── NotificationCenter │ │ ├── Notification │ │ │ └── index.html │ │ ├── NotificationCenter │ │ │ └── index.html │ │ ├── NotificationListener │ │ │ └── index.html │ │ └── index.html │ ├── Range │ │ ├── Range │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Databases │ ├── DBI │ │ ├── DBI │ │ │ └── index.html │ │ ├── DBIConn │ │ │ └── index.html │ │ ├── DBIRecord │ │ │ └── index.html │ │ ├── DBIResult │ │ │ └── index.html │ │ └── index.html │ ├── Memcached │ │ ├── Memcached │ │ │ └── index.html │ │ └── index.html │ ├── MySQL │ │ ├── MySQL │ │ │ └── index.html │ │ └── index.html │ ├── Obsidian │ │ ├── Obsidian │ │ │ └── index.html │ │ ├── ObsidianClient │ │ │ └── index.html │ │ ├── ObsidianServer │ │ │ └── index.html │ │ ├── PDB │ │ │ └── index.html │ │ ├── PMap │ │ │ └── index.html │ │ ├── PObject │ │ │ └── index.html │ │ └── index.html │ ├── Postgres │ │ ├── Postgres │ │ │ └── index.html │ │ └── index.html │ ├── QDBM │ │ ├── QDBM │ │ │ └── index.html │ │ └── index.html │ ├── SQLite │ │ ├── SQLite │ │ │ └── index.html │ │ └── index.html │ ├── SQLite3 │ │ ├── SQLite3 │ │ │ └── index.html │ │ └── index.html │ ├── SkipDB │ │ ├── SkipDB │ │ │ └── index.html │ │ ├── SkipDBCursor │ │ │ └── index.html │ │ ├── SkipDBM │ │ │ └── index.html │ │ └── index.html │ ├── SqlDatabase │ │ ├── SqlDatabase │ │ │ └── index.html │ │ └── index.html │ ├── TagDB │ │ ├── TagDB │ │ │ └── index.html │ │ └── index.html │ ├── TokyoCabinet │ │ ├── TokyoCabinet │ │ │ └── index.html │ │ ├── TokyoCabinetCursor │ │ │ └── index.html │ │ ├── TokyoCabinetPrefixCursor │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Digests │ ├── MD5 │ │ ├── MD5 │ │ │ └── index.html │ │ └── index.html │ ├── Oauth │ │ ├── Oauth │ │ │ └── index.html │ │ └── index.html │ ├── SHA1 │ │ ├── SHA1 │ │ │ └── index.html │ │ └── index.html │ ├── UUID │ │ ├── UUID │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Encryption │ ├── Blowfish │ │ ├── Blowfish │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Filesystem │ ├── AsyncRequest │ │ ├── AsyncRequest │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Graphics │ ├── Box │ │ └── index.html │ ├── Cairo │ │ ├── Cairo │ │ │ └── index.html │ │ ├── CairoContext │ │ │ └── index.html │ │ ├── CairoExtents │ │ │ └── index.html │ │ ├── CairoFontExtents │ │ │ └── index.html │ │ ├── CairoFontFace │ │ │ └── index.html │ │ ├── CairoFontOptions │ │ │ └── index.html │ │ ├── CairoGlyph │ │ │ └── index.html │ │ ├── CairoGradient │ │ │ └── index.html │ │ ├── CairoImageSurface │ │ │ └── index.html │ │ ├── CairoLinearGradient │ │ │ └── index.html │ │ ├── CairoMatrix │ │ │ └── index.html │ │ ├── CairoPath │ │ │ └── index.html │ │ ├── CairoPathElement │ │ │ └── index.html │ │ ├── CairoPattern │ │ │ └── index.html │ │ ├── CairoRadialGradient │ │ │ └── index.html │ │ ├── CairoRectangle │ │ │ └── index.html │ │ ├── CairoScaledFont │ │ │ └── index.html │ │ ├── CairoSolidPattern │ │ │ └── index.html │ │ ├── CairoSurface │ │ │ └── index.html │ │ ├── CairoSurfacePattern │ │ │ └── index.html │ │ ├── CairoTextExtents │ │ │ └── index.html │ │ └── index.html │ ├── Font │ │ ├── Font │ │ │ └── index.html │ │ └── index.html │ ├── GLFW │ │ ├── GLFW │ │ │ └── index.html │ │ └── index.html │ ├── Image │ │ ├── Image │ │ │ └── index.html │ │ └── index.html │ ├── OpenGL │ │ ├── Box │ │ │ └── index.html │ │ ├── GLApp │ │ │ └── index.html │ │ ├── GLScissor │ │ │ └── index.html │ │ ├── GLU │ │ │ └── index.html │ │ ├── GLUQuadric │ │ │ └── index.html │ │ ├── GLUT │ │ │ └── index.html │ │ ├── OpenGL │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Math │ ├── BigNum │ │ ├── BigNum │ │ │ └── index.html │ │ └── index.html │ ├── ContinuedFraction │ │ ├── ContinuedFraction │ │ │ └── index.html │ │ └── index.html │ ├── Random │ │ ├── Random │ │ │ └── index.html │ │ └── index.html │ ├── Rational │ │ ├── Rational │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Networking │ ├── Beanstalk │ │ ├── Beanstalk │ │ │ └── index.html │ │ └── index.html │ ├── CGI │ │ ├── CGI │ │ │ └── index.html │ │ └── index.html │ ├── DistributedObjects │ │ ├── DOConnection │ │ │ └── index.html │ │ ├── DOProxy │ │ │ └── index.html │ │ ├── DOServer │ │ │ └── index.html │ │ ├── MDOConnection │ │ │ └── index.html │ │ ├── MDOServer │ │ │ └── index.html │ │ └── index.html │ ├── GoogleSearch │ │ ├── GooglePage │ │ │ └── index.html │ │ ├── GoogleSearch │ │ │ └── index.html │ │ └── index.html │ ├── HttpClient │ │ ├── HCConnection │ │ │ └── index.html │ │ ├── HCRequest │ │ │ └── index.html │ │ ├── HCResponse │ │ │ └── index.html │ │ ├── HCResponseParser │ │ │ └── index.html │ │ ├── HCUrl │ │ │ └── index.html │ │ └── index.html │ ├── Loudmouth │ │ ├── JID │ │ │ └── index.html │ │ ├── Loudmouth │ │ │ └── index.html │ │ ├── LoudmouthMessage │ │ │ └── index.html │ │ ├── XmppChatMessage │ │ │ └── index.html │ │ └── index.html │ ├── NetworkAdapter │ │ ├── NetworkAdapter │ │ │ └── index.html │ │ └── index.html │ ├── SecureSocket │ │ ├── Certificate │ │ │ └── index.html │ │ ├── SecureClient │ │ │ └── index.html │ │ ├── SecureServer │ │ │ └── index.html │ │ ├── SecureSocket │ │ │ └── index.html │ │ └── index.html │ ├── Socket │ │ ├── DNS │ │ │ └── index.html │ │ ├── DNSQuery │ │ │ └── index.html │ │ ├── DNSServer │ │ │ └── index.html │ │ ├── EvConnection │ │ │ └── index.html │ │ ├── EvRequest │ │ │ └── index.html │ │ ├── Event │ │ │ └── index.html │ │ ├── EventManager │ │ │ └── index.html │ │ ├── Host │ │ │ └── index.html │ │ ├── IPAddress │ │ │ └── index.html │ │ ├── ReadEvent │ │ │ └── index.html │ │ ├── Server │ │ │ └── index.html │ │ ├── SignalEvent │ │ │ └── index.html │ │ ├── Socket │ │ │ └── index.html │ │ ├── TimerEvent │ │ │ └── index.html │ │ ├── URL │ │ │ └── index.html │ │ ├── WriteEvent │ │ │ └── index.html │ │ └── index.html │ ├── Twitter │ │ ├── TwitterAccount │ │ │ └── index.html │ │ ├── TwitterAccountProfile │ │ │ └── index.html │ │ ├── TwitterException │ │ │ └── index.html │ │ ├── TwitterFollowersCursor │ │ │ └── index.html │ │ ├── TwitterFriendsCursor │ │ │ └── index.html │ │ ├── TwitterRequest │ │ │ └── index.html │ │ ├── TwitterResponse │ │ │ └── index.html │ │ ├── TwitterSearch │ │ │ └── index.html │ │ ├── TwitterSearchCursor │ │ │ └── index.html │ │ └── index.html │ ├── Volcano │ │ ├── VolcanoServer │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Parsers │ ├── Fnmatch │ │ ├── Fnmatch │ │ │ └── index.html │ │ └── index.html │ ├── Libxml2 │ │ ├── XmlReader │ │ │ └── index.html │ │ ├── XmlWriter │ │ │ └── index.html │ │ └── index.html │ ├── Regex │ │ ├── Regex │ │ │ └── index.html │ │ ├── RegexMatch │ │ │ └── index.html │ │ ├── RegexMatches │ │ │ └── index.html │ │ └── index.html │ ├── SGML │ │ ├── SGMLElement │ │ │ └── index.html │ │ ├── SGMLParser │ │ │ └── index.html │ │ └── index.html │ ├── Yajl │ │ ├── YajlGenParser │ │ │ └── index.html │ │ ├── YajlParser │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Physics │ ├── ODE │ │ ├── ODEBall │ │ │ └── index.html │ │ ├── ODEBody │ │ │ └── index.html │ │ ├── ODEBox │ │ │ └── index.html │ │ ├── ODEContact │ │ │ └── index.html │ │ ├── ODEContactJoint │ │ │ └── index.html │ │ ├── ODEFixed │ │ │ └── index.html │ │ ├── ODEHinge │ │ │ └── index.html │ │ ├── ODEHinge2 │ │ │ └── index.html │ │ ├── ODEJoint │ │ │ └── index.html │ │ ├── ODEJointGroup │ │ │ └── index.html │ │ ├── ODEMass │ │ │ └── index.html │ │ ├── ODEPlane │ │ │ └── index.html │ │ ├── ODESimpleSpace │ │ │ └── index.html │ │ ├── ODEWorld │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Server │ ├── Curses │ │ ├── Curses │ │ │ └── index.html │ │ └── index.html │ ├── EditLine │ │ ├── EditLine │ │ │ └── index.html │ │ └── index.html │ ├── NullAddon │ │ ├── NullAddon │ │ │ └── index.html │ │ └── index.html │ ├── ReadLine │ │ ├── ReadLine │ │ │ └── index.html │ │ └── index.html │ ├── Syslog │ │ ├── Syslog │ │ │ └── index.html │ │ └── index.html │ ├── SystemCall │ │ ├── SystemCall │ │ │ └── index.html │ │ └── index.html │ ├── User │ │ ├── User │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── UserInterface │ ├── Clutter │ │ ├── Clutter │ │ │ └── index.html │ │ ├── ClutterActor │ │ │ └── index.html │ │ ├── ClutterActorBox │ │ │ └── index.html │ │ ├── ClutterColor │ │ │ └── index.html │ │ ├── ClutterEvent │ │ │ └── index.html │ │ ├── ClutterInputDevice │ │ │ └── index.html │ │ ├── ClutterShader │ │ │ └── index.html │ │ ├── ClutterStage │ │ │ └── index.html │ │ ├── ClutterUnits │ │ │ └── index.html │ │ ├── ClutterVertex │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── Video │ ├── AVCodec │ │ ├── AVCodec │ │ │ └── index.html │ │ └── index.html │ ├── Theora │ │ ├── TheoraComment │ │ │ └── index.html │ │ ├── TheoraDecodeContext │ │ │ └── index.html │ │ ├── TheoraInfo │ │ │ └── index.html │ │ ├── TheoraSetupInfo │ │ │ └── index.html │ │ └── index.html │ ├── Vorbis │ │ ├── VorbisBlock │ │ │ └── index.html │ │ ├── VorbisComment │ │ │ └── index.html │ │ ├── VorbisDspState │ │ │ └── index.html │ │ ├── VorbisInfo │ │ │ └── index.html │ │ └── index.html │ └── index.html │ ├── docs.json │ └── index.html ├── extras ├── IoLanguageKit │ ├── IoLanguageKit.h │ ├── IoLanguageKit.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── steve.xcuserdatad │ │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcuserdata │ │ │ └── steve.xcuserdatad │ │ │ └── xcschemes │ │ │ ├── IoLanguageKit.xcscheme │ │ │ └── xcschememanagement.plist │ ├── IoLanguageKit │ │ ├── IoLanguageKit-Info.plist │ │ ├── IoLanguageKit-Prefix.pch │ │ └── en.lproj │ │ │ └── InfoPlist.strings │ ├── cleanup.io │ ├── libevent_core.a │ ├── libevent_extra.a │ └── libyajl_s.a ├── IoTest │ ├── IoTest.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcuserdata │ │ │ │ └── steve.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ └── xcuserdata │ │ │ └── steve.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── IoTest.xcscheme │ │ │ └── xcschememanagement.plist │ └── IoTest │ │ ├── IoBrowserController.h │ │ ├── IoBrowserController.m │ │ ├── IoCLIController.h │ │ ├── IoCLIController.m │ │ ├── IoTest-Info.plist │ │ ├── IoTest-Prefix.pch │ │ ├── en.lproj │ │ ├── Credits.rtf │ │ ├── InfoPlist.strings │ │ └── MainMenu.xib │ │ └── main.m ├── SyntaxHighlighters │ ├── Emacs │ │ ├── io-mode-old.el │ │ └── io-mode.el │ ├── IntelliJ │ │ ├── Io.xml │ │ └── readme.txt │ ├── Io.tmbundle │ │ ├── Commands │ │ │ ├── Run Io Program (ioServer).plist │ │ │ └── Run.plist │ │ ├── Preferences │ │ │ ├── Indent.tmPreferences │ │ │ └── Typing Pattern.tmPreferences │ │ ├── Snippets │ │ │ ├── actorRun.tmSnippet │ │ │ ├── ancestorWithSlot.tmSnippet │ │ │ ├── ancestors.tmSnippet │ │ │ ├── appendProto.tmSnippet │ │ │ ├── asCharacter.tmSnippet │ │ │ ├── asNumber 2.tmSnippet │ │ │ ├── asNumber.tmSnippet │ │ │ ├── asSimpleString.tmSnippet │ │ │ ├── asString.tmSnippet │ │ │ ├── between.tmSnippet │ │ │ ├── bitwiseAnd.tmSnippet │ │ │ ├── bitwiseComplement.tmSnippet │ │ │ ├── bitwiseOr.tmSnippet │ │ │ ├── bitwiseXor.tmSnippet │ │ │ ├── block.tmSnippet │ │ │ ├── catch.tmSnippet │ │ │ ├── clone.tmSnippet │ │ │ ├── coroDo.tmSnippet │ │ │ ├── do.tmSnippet │ │ │ ├── doFile.tmSnippet │ │ │ ├── doMessage.tmSnippet │ │ │ ├── doString.tmSnippet │ │ │ ├── docCategory.tmSnippet │ │ │ ├── docCopyright.tmSnippet │ │ │ ├── docCredits.tmSnippet │ │ │ ├── docDescription.tmSnippet │ │ │ ├── docLicense.tmSnippet │ │ │ ├── docObject.tmSnippet │ │ │ ├── docSlot.tmSnippet │ │ │ ├── getLocalSlot.tmSnippet │ │ │ ├── getSlot.tmSnippet │ │ │ ├── hasLocalSlot.tmSnippet │ │ │ ├── hasSlot.tmSnippet │ │ │ ├── if.tmSnippet │ │ │ ├── isKindOf.tmSnippet │ │ │ ├── isNil.tmSnippet │ │ │ ├── message.tmSnippet │ │ │ ├── method.tmSnippet │ │ │ ├── newSlot.tmSnippet │ │ │ ├── perform.tmSnippet │ │ │ ├── performWithArgList.tmSnippet │ │ │ ├── prependProto.tmSnippet │ │ │ ├── removeAllProtos.tmSnippet │ │ │ ├── removeProto.tmSnippet │ │ │ ├── removeSlot.tmSnippet │ │ │ ├── return.tmSnippet │ │ │ ├── setSlot.tmSnippet │ │ │ ├── setSlotWithType.tmSnippet │ │ │ ├── try.tmSnippet │ │ │ ├── updateSlot.tmSnippet │ │ │ └── while.tmSnippet │ │ ├── Syntaxes │ │ │ └── Io.plist │ │ ├── Templates │ │ │ └── Io.tmTemplate │ │ │ │ ├── info.plist │ │ │ │ └── source.io │ │ └── info.plist │ ├── JEdit │ │ ├── _ReadMe.txt │ │ └── io.xml │ ├── Kate │ │ └── io.xml │ ├── Komodo │ │ └── io-1.2-ko.xpi │ ├── Scintilla │ │ └── Io.properties │ ├── Smultron │ │ └── io.plist │ ├── SubEthaEdit │ │ ├── Io.mode │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── English.lproj │ │ │ │ └── InfoPlist.strings │ │ │ │ ├── RegexSymbols.xml │ │ │ │ ├── SyntaxDefinition.xml │ │ │ │ └── pole.gif │ │ ├── Io.plist │ │ ├── SubEthaEdit Io mode read me.txt │ │ └── io.seestyle │ ├── Vim │ │ └── io.vim │ └── XCode │ │ ├── Io.pbfilespec │ │ ├── Io.pblangspec │ │ └── _ReadMe.txt ├── osx │ ├── osx.1 │ └── osx.xcodeproj │ │ ├── project.pbxproj │ │ ├── steve.mode1 │ │ ├── steve.mode2v3 │ │ └── steve.pbxuser ├── osxvm │ └── osxvm.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── osxvm.xccheckout │ │ └── xcuserdata │ │ │ └── steve.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ ├── steve.mode1 │ │ ├── steve.mode2v3 │ │ └── xcuserdata │ │ └── steve.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints.xcbkptlist │ │ └── xcschemes │ │ ├── osxvm.xcscheme │ │ └── xcschememanagement.plist ├── symbian │ ├── ABLD.BAT │ ├── Bld.inf │ ├── SymbianSockets.cpp │ ├── SymbianSockets.h │ ├── io.mmp │ ├── io.rss │ ├── symbianmain.cpp │ └── symbianmain.h ├── win32vc10 │ └── io │ │ ├── basekit │ │ ├── basekit.vcxproj │ │ └── basekit.vcxproj.filters │ │ ├── coroutine │ │ ├── coroutine.vcxproj │ │ └── coroutine.vcxproj.filters │ │ ├── garbagecollector │ │ ├── garbagecollector.vcxproj │ │ └── garbagecollector.vcxproj.filters │ │ ├── io.sln │ │ ├── io │ │ ├── io.vcxproj │ │ └── io.vcxproj.filters │ │ ├── io2c │ │ ├── io2c.vcxproj │ │ └── io2c.vcxproj.filters │ │ └── iovm │ │ ├── iovm.vcxproj │ │ ├── iovm.vcxproj.filters │ │ └── scripts │ │ ├── microsed.js │ │ └── microxargs.js ├── win32vc2005 │ ├── FreeType │ │ └── FreeType.vcproj │ ├── Io.sln │ ├── IoApp │ │ ├── IoApp.vcproj │ │ ├── IoAppSetup.c │ │ ├── IoAppSetup.h │ │ └── main.c │ ├── IoImage │ │ └── IoImage.vcproj │ ├── IoJPEG │ │ └── IoJPEG.vcproj │ ├── IoMath │ │ └── IoMath.vcproj │ ├── IoOpenGL │ │ └── IoOpenGL.vcproj │ ├── IoPNG │ │ └── IoPNG.vcproj │ ├── IoTIFF │ │ └── IoTIFF.vcproj │ ├── IoVM │ │ └── IoVM.vcproj │ ├── freeglut-2.2.0 │ │ ├── doc │ │ │ ├── download.html │ │ │ ├── freeglut.html │ │ │ ├── freeglut_user_interface.html │ │ │ ├── index.html │ │ │ ├── progress.html │ │ │ └── structure.html │ │ ├── include │ │ │ └── GL │ │ │ │ ├── freeglut.h │ │ │ │ ├── freeglut_ext.h │ │ │ │ ├── freeglut_std.h │ │ │ │ └── glut.h │ │ └── src │ │ │ ├── freeglut_callbacks.c │ │ │ ├── freeglut_cursor.c │ │ │ ├── freeglut_display.c │ │ │ ├── freeglut_ext.c │ │ │ ├── freeglut_font.c │ │ │ ├── freeglut_font_data.c │ │ │ ├── freeglut_gamemode.c │ │ │ ├── freeglut_geometry.c │ │ │ ├── freeglut_glutfont_definitions.c │ │ │ ├── freeglut_init.c │ │ │ ├── freeglut_internal.h │ │ │ ├── freeglut_joystick.c │ │ │ ├── freeglut_main.c │ │ │ ├── freeglut_menu.c │ │ │ ├── freeglut_misc.c │ │ │ ├── freeglut_overlay.c │ │ │ ├── freeglut_state.c │ │ │ ├── freeglut_stroke_mono_roman.c │ │ │ ├── freeglut_stroke_roman.c │ │ │ ├── freeglut_structure.c │ │ │ ├── freeglut_teapot.c │ │ │ ├── freeglut_videoresize.c │ │ │ └── freeglut_window.c │ └── freeglut │ │ └── freeglut.vcproj └── xcode │ └── Io │ ├── Io.xcodeproj │ └── project.pbxproj │ └── Io │ ├── Io-Info.plist │ ├── Io-Prefix.pch │ ├── IoAppDelegate.h │ ├── IoAppDelegate.m │ ├── TextDelegate.h │ ├── TextDelegate.m │ ├── en.lproj │ ├── Credits.rtf │ ├── InfoPlist.strings │ └── MainMenu.xib │ └── main.m ├── libs ├── CMakeLists.txt ├── basekit │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── Makefile.lib │ ├── depends │ └── source │ │ ├── BStream.c │ │ ├── BStream.h │ │ ├── BStreamTag.c │ │ ├── BStreamTag.h │ │ ├── Base.h │ │ ├── CHash.c │ │ ├── CHash.h │ │ ├── CHash_inline.h │ │ ├── Common.c │ │ ├── Common.h │ │ ├── Common_inline.h │ │ ├── Date.c │ │ ├── Date.h │ │ ├── Duration.c │ │ ├── Duration.h │ │ ├── DynLib.c │ │ ├── DynLib.h │ │ ├── Hash_fnv.c │ │ ├── Hash_fnv.h │ │ ├── Hash_murmur.c │ │ ├── Hash_murmur.h │ │ ├── Hash_superfast.c │ │ ├── Hash_superfast.h │ │ ├── List.c │ │ ├── List.h │ │ ├── List_inline.h │ │ ├── MainArgs.c │ │ ├── MainArgs.h │ │ ├── PointerHash.c │ │ ├── PointerHash.h │ │ ├── PointerHash_inline.h │ │ ├── PointerHash_struct.h │ │ ├── PortableGettimeofday.c │ │ ├── PortableGettimeofday.h │ │ ├── PortableSnprintf.c │ │ ├── PortableSorting.c │ │ ├── PortableSorting.h │ │ ├── PortableStdint.h │ │ ├── PortableStrlcpy.c │ │ ├── PortableStrlcpy.h │ │ ├── PortableStrptime.c │ │ ├── PortableStrptime.h │ │ ├── PortableTruncate.c │ │ ├── PortableTruncate.h │ │ ├── PortableUsleep.c │ │ ├── PortableUsleep.h │ │ ├── RandomGen.c │ │ ├── RandomGen.h │ │ ├── Stack.c │ │ ├── Stack.h │ │ ├── Stack_inline.h │ │ ├── UArray.c │ │ ├── UArray.h │ │ ├── UArray_character.c │ │ ├── UArray_character.h │ │ ├── UArray_format.c │ │ ├── UArray_format.h │ │ ├── UArray_math.c │ │ ├── UArray_math.h │ │ ├── UArray_path.c │ │ ├── UArray_path.h │ │ ├── UArray_stream.c │ │ ├── UArray_stream.h │ │ ├── UArray_string.c │ │ ├── UArray_string.h │ │ ├── UArray_utf.c │ │ ├── UArray_utf.h │ │ ├── _new │ │ └── Directory.c │ │ ├── cdecode.c │ │ ├── cdecode.h │ │ ├── cencode.c │ │ ├── cencode.h │ │ ├── simd_cph │ │ ├── LICENSE.txt │ │ ├── docs │ │ │ └── LICENSE.txt │ │ ├── include │ │ │ ├── simd_cp.h │ │ │ ├── simd_cp_arm-iwmmx.h │ │ │ ├── simd_cp_emu.h │ │ │ └── simd_cp_x86.h │ │ ├── simd_cph.readme │ │ └── test │ │ │ ├── Makefile │ │ │ ├── test_simd.c │ │ │ └── test_simd_emu │ │ ├── ucs2.c │ │ ├── ucs4.c │ │ ├── utf8.c │ │ ├── utf8.h │ │ ├── utf8internal.h │ │ ├── utf_convert.c │ │ └── utf_convert.h ├── coroutine │ ├── .gitignore │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── depends │ ├── docs │ │ └── index.html │ ├── samples │ │ ├── Makefile │ │ └── twoCoroTest.c │ └── source │ │ ├── 386-ucontext.h │ │ ├── Coro.c │ │ ├── Coro.h │ │ ├── amd64-ucontext.h │ │ ├── asm.S │ │ ├── context.c │ │ ├── power-ucontext.h │ │ └── taskimpl.h ├── garbagecollector │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── depends │ ├── docs │ │ └── index.html │ └── source │ │ ├── Collector.c │ │ ├── Collector.h │ │ ├── CollectorMarker.c │ │ ├── CollectorMarker.h │ │ ├── CollectorMarker_inline.h │ │ └── Collector_inline.h └── iovm │ ├── CMakeLists.txt │ ├── LICENSE.txt │ ├── depends │ ├── io │ ├── A0_List.io │ ├── A0_Object.io │ ├── A1_OperatorTable.io │ ├── A2_Object.io │ ├── A3_List.io │ ├── A4_Exception.io │ ├── Actor.io │ ├── AddonLoader.io │ ├── B_Sequence.io │ ├── Block.io │ ├── CFunction.io │ ├── Date.io │ ├── Debugger.io │ ├── Directory.io │ ├── DynLib.io │ ├── Error.io │ ├── File.io │ ├── List_schwartzian.io │ ├── Map.io │ ├── Message.io │ ├── Number.io │ ├── Profiler.io │ ├── Sandbox.io │ ├── Serialize.io │ ├── System.io │ ├── UnitTest.io │ ├── Vector.io │ ├── Y_Path.io │ ├── Z_CLI.io │ ├── Z_Importer.io │ ├── _old │ │ ├── A0__.io │ │ └── A1_optransform.io │ └── _test │ │ ├── Compiler.io │ │ └── System.io │ ├── samples │ └── VectorPerformance.io │ ├── source │ ├── IoBlock.c │ ├── IoBlock.h │ ├── IoCFunction.c │ ├── IoCFunction.h │ ├── IoCall.c │ ├── IoCall.h │ ├── IoCollector.c │ ├── IoCollector.h │ ├── IoCompiler.c │ ├── IoCompiler.h │ ├── IoConfig.h │ ├── IoContext.h │ ├── IoCoroutine.c │ ├── IoCoroutine.h │ ├── IoDate.c │ ├── IoDate.h │ ├── IoDebugger.c │ ├── IoDebugger.h │ ├── IoDirectory.c │ ├── IoDirectory.h │ ├── IoDuration.c │ ├── IoDuration.h │ ├── IoDynLib.c │ ├── IoDynLib.h │ ├── IoError.c │ ├── IoError.h │ ├── IoFile.c │ ├── IoFile.h │ ├── IoFile_stat.c │ ├── IoFile_stat.h │ ├── IoLexer.c │ ├── IoLexer.h │ ├── IoList.c │ ├── IoList.h │ ├── IoMap.c │ ├── IoMap.h │ ├── IoMessage.c │ ├── IoMessage.h │ ├── IoMessage_inline.h │ ├── IoMessage_opShuffle.c │ ├── IoMessage_opShuffle.h │ ├── IoMessage_parser.c │ ├── IoMessage_parser.h │ ├── IoNumber.c │ ├── IoNumber.h │ ├── IoObject.c │ ├── IoObject.h │ ├── IoObject_flow.c │ ├── IoObject_flow.h │ ├── IoObject_inline.h │ ├── IoObject_struct.h │ ├── IoProfiler.c │ ├── IoProfiler.h │ ├── IoSandbox.c │ ├── IoSandbox.h │ ├── IoSeq.c │ ├── IoSeq.h │ ├── IoSeq_immutable.c │ ├── IoSeq_immutable.h │ ├── IoSeq_inline.h │ ├── IoSeq_mutable.c │ ├── IoSeq_mutable.h │ ├── IoSeq_vector.c │ ├── IoSeq_vector.h │ ├── IoState.c │ ├── IoState.h │ ├── IoState_callbacks.c │ ├── IoState_callbacks.h │ ├── IoState_coros.c │ ├── IoState_coros.h │ ├── IoState_debug.c │ ├── IoState_debug.h │ ├── IoState_eval.c │ ├── IoState_eval.h │ ├── IoState_exceptions.c │ ├── IoState_exceptions.h │ ├── IoState_inline.h │ ├── IoState_symbols.c │ ├── IoState_symbols.h │ ├── IoSystem.c │ ├── IoSystem.h │ ├── IoTag.c │ ├── IoTag.h │ ├── IoTag_inline.h │ ├── IoToken.c │ ├── IoToken.h │ ├── IoVM.h │ ├── IoVMApi.h │ ├── IoVersion.h │ ├── IoWeakLink.c │ ├── IoWeakLink.h │ ├── PHash.c │ ├── PHash.h │ ├── PHash_inline.h │ └── PHash_struct.h │ ├── tests │ └── correctness │ │ ├── AlignTest.io │ │ ├── BigSourceFileTest.io │ │ ├── BlockTest.io │ │ ├── CoroTest.io │ │ ├── DateTest.io │ │ ├── DirectoryTest.io │ │ ├── FileTest.io │ │ ├── IfTest.io │ │ ├── ListTest.io │ │ ├── LoopBreakingTest.io │ │ ├── LoopTest.io │ │ ├── MapTest.io │ │ ├── MessageTest.io │ │ ├── MiscTest.io │ │ ├── NumberTest.io │ │ ├── ObjectTest.io │ │ ├── SequenceBitTest.io │ │ ├── SequenceTest.io │ │ ├── SwitchTest.io │ │ ├── TraitsTest.io │ │ ├── UnicodeTest-helper │ │ ├── UnicodeTest.txt │ │ └── printer.io │ │ ├── UnicodeTest.io │ │ ├── VectorCompareTest.io │ │ ├── VectorTest.io │ │ ├── WeakLinkTest.io │ │ └── run.io │ └── tools │ ├── CMakeLists.txt │ └── io2c.c ├── samples ├── misc │ ├── Account.io │ ├── Ackermann.io │ ├── BottlesOfBeer.io │ ├── Brackets.io │ ├── Cards.io │ ├── CommandLineArgs.io │ ├── Conditions.io │ ├── Control.io │ ├── ControlFlow.io │ ├── Decompile.io │ ├── Dir.io │ ├── ErlangChallenge.io │ ├── FizzBuzz.io │ ├── Foreach.io │ ├── Hanoi.io │ ├── HelloWorld.io │ ├── Inheritance.io │ ├── MainFile.io │ ├── SimpleCoro.io │ ├── Sort.io │ ├── Super.io │ ├── WeakLink.io │ ├── except.io │ ├── qsort.io │ └── vtest.io ├── shootout │ ├── binarytrees.io │ ├── chameneos.io │ ├── cheapconcurrency.io │ ├── fannkuch.io │ ├── fasta.io │ ├── mandelbrot-output.txt │ ├── mandelbrot.io │ ├── nbody.io │ ├── nsieve.io │ ├── nsievebits.io │ ├── partialsums.io │ ├── recursive.io │ ├── reverse-complement.io │ ├── spectral-norm.io │ ├── sumcol-input.txt │ ├── sumcol-output.txt │ └── sumcol.io └── speed │ ├── SpeedResults │ ├── SpeedResults.html │ ├── speed.io │ ├── speed.py │ ├── speed.rb │ ├── speed.rebol │ ├── speedResults.io │ └── speedResults2.io └── tools ├── CMakeLists.txt ├── docker ├── Dockerfile ├── README.md ├── buildDockerIo.sh └── runDockerIo.sh ├── io ├── DocsExtractor.io └── docs2html.io ├── old ├── processIoCode.io └── processIoCodeFor.io └── source └── main.c /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: LLVM 2 | IndentWidth: 4 3 | IncludeBlocks: Preserve 4 | SortIncludes: false 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | projects/*/*.xcodeproj/* -diff -merge 2 | *.pbxproj -crlf -diff -merge 3 | *.pbxuser -crlf -diff -merge 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "deps/parson"] 2 | path = deps/parson 3 | url = https://github.com/kgabis/parson.git 4 | [submodule "eerie"] 5 | path = eerie 6 | url = https://github.com/IoLanguage/eerie.git 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: trusty 2 | sudo: required 3 | 4 | language: c 5 | 6 | os: 7 | - linux 8 | - osx 9 | 10 | compiler: 11 | - gcc 12 | - clang 13 | 14 | install: 15 | - 'if [ "${TRAVIS_OS_NAME}" == "linux" ]; then 16 | sudo apt-get install libyajl-dev; 17 | sudo apt-get install libev-libevent-dev; 18 | sudo apt-get install libpcre3-dev; 19 | fi' 20 | - 'if [ "${TRAVIS_OS_NAME}" == "osx" ]; then 21 | brew install yajl; 22 | brew install libevent; 23 | brew install pcre; 24 | fi' 25 | 26 | 27 | before_script: 28 | - mkdir build 29 | - cd build 30 | 31 | script: 32 | - cmake .. 33 | - make 34 | - ./_build/binaries/io ../libs/iovm/tests/correctness/run.io 35 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Build script for Steve 3 | 4 | INSTALL_PREFIX="${INSTALL_PREFIX:-/usr/local}" 5 | 6 | if [ X"$1" = X"linkInstall" ]; then 7 | rm -rf $INSTALL_PREFIX/lib/io $INSTALL_PREFIX/bin/io 8 | for i in $PWD/build/_build/dll/*; do ln -s $i $INSTALL_PREFIX/lib/`basename $i`; done 9 | mkdir $INSTALL_PREFIX/lib/io 10 | ln -s $PWD/addons $INSTALL_PREFIX/lib/io/ 11 | elif [ X"$1" = X"install" ]; then 12 | cd build 13 | make install 14 | elif [ X"$1" = X"help" ]; then 15 | echo "Io build and installation" 16 | echo "Usage: $0 [help|install|linkInstall|clean]" 17 | echo -e "help\n\tThis message" 18 | echo -e "install\n\tInstalls Io (must have built it first)" 19 | echo -e "linkInstall\n\tLike above, but creates links into this hierarchy" 20 | echo -e "clean\n\tRemoves all build files. This will break a linkInstall." 21 | echo -e "Any other arguments, or lack thereof will build Io." 22 | elif [ X"$1" = X"clean" ]; then 23 | [ -d build ] && rm -rf build || echo "Nothing to clean." 24 | else 25 | mkdir -p build 26 | cd build 27 | cmake -DCMAKE_INSTALL_PREFIX="$INSTALL_PREFIX" .. 28 | make all 29 | fi 30 | 31 | -------------------------------------------------------------------------------- /docs/reference/Audio/Ogg/OggPacket/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | OggPacket 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Audio 16 |   /   17 | Ogg 18 |   /   19 | OggPacket 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
A wrapper around the libogg ogg_packet object. No methods - used internally. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Bridges/CFFI/CFFI/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFFI 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Bridges 16 |   /   17 | CFFI 18 |   /   19 | CFFI 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Bridges/CFFI/CFFIPointer/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFFIPointer 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Bridges 16 |   /   17 | CFFI 18 |   /   19 | CFFIPointer 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
An Io interface to C 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Bridges/Python/Python/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Python 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Bridges 16 |   /   17 | Python 18 |   /   19 | Python 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
This object provides access the world of python. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Databases/Obsidian/ObsidianClient/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ObsidianClient 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Databases 16 |   /   17 | Obsidian 18 |   /   19 | ObsidianClient 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Databases/Obsidian/PObject/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PObject 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Databases 16 |   /   17 | Obsidian 18 |   /   19 | PObject 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Databases/Postgres/Postgres/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Postgres 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Databases 16 |   /   17 | Postgres 18 |   /   19 | Postgres 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Databases/SqlDatabase/SqlDatabase/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SqlDatabase 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Databases 16 |   /   17 | SqlDatabase 18 |   /   19 | SqlDatabase 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/Cairo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Cairo 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | Cairo 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Cairo is a 2D graphics library. http://cairographics.org/ 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoContext/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoContext 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoContext 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoExtents/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoExtents 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoExtents 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoFontExtents/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoFontExtents 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoFontExtents 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoFontFace/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoFontFace 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoFontFace 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoFontOptions/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoFontOptions 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoFontOptions 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoGlyph/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoGlyph 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoGlyph 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoGradient/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoGradient 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoGradient 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoImageSurface/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoImageSurface 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoImageSurface 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoLinearGradient/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoLinearGradient 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoLinearGradient 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoMatrix/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoMatrix 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoMatrix 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoPath/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoPath 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoPath 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoPathElement/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoPathElement 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoPathElement 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoPattern/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoPattern 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoPattern 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoRadialGradient/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoRadialGradient 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoRadialGradient 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoRectangle/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoRectangle 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoRectangle 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoScaledFont/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoScaledFont 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoScaledFont 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoSolidPattern/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoSolidPattern 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoSolidPattern 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoSurface/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoSurface 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoSurface 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoSurfacePattern/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoSurfacePattern 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoSurfacePattern 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/Cairo/CairoTextExtents/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CairoTextExtents 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | Cairo 18 |   /   19 | CairoTextExtents 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/GLFW/GLFW/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GLFW 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | GLFW 18 |   /   19 | GLFW 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/OpenGL/GLApp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GLApp 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | OpenGL 18 |   /   19 | GLApp 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/OpenGL/GLScissor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GLScissor 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | OpenGL 18 |   /   19 | GLScissor 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/OpenGL/GLUQuadric/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GLUQuadric 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | OpenGL 18 |   /   19 | GLUQuadric 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/OpenGL/GLUT/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GLUT 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | OpenGL 18 |   /   19 | GLUT 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Graphics/OpenGL/OpenGL/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | OpenGL 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Graphics 16 |   /   17 | OpenGL 18 |   /   19 | OpenGL 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Math/ContinuedFraction/ContinuedFraction/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ContinuedFraction 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Math 16 |   /   17 | ContinuedFraction 18 |   /   19 | ContinuedFraction 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
? 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/DistributedObjects/DOProxy/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DOProxy 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | DistributedObjects 18 |   /   19 | DOProxy 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Networking/Socket/EvConnection/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EvConnection 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Socket 18 |   /   19 | EvConnection 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Networking Event. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/Socket/EvRequest/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EvRequest 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Socket 18 |   /   19 | EvRequest 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Networking Event. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/Socket/ReadEvent/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ReadEvent 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Socket 18 |   /   19 | ReadEvent 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Object for read events. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/Socket/SignalEvent/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SignalEvent 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Socket 18 |   /   19 | SignalEvent 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Object for signal events. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/Socket/TimerEvent/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TimerEvent 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Socket 18 |   /   19 | TimerEvent 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Object for timer events. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/Socket/WriteEvent/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WriteEvent 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Socket 18 |   /   19 | WriteEvent 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Object for write events. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Networking/Twitter/TwitterSearchCursor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TwitterSearchCursor 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Twitter 18 |   /   19 | TwitterSearchCursor 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Networking/Volcano/VolcanoServer/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VolcanoServer 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Networking 16 |   /   17 | Volcano 18 |   /   19 | VolcanoServer 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
A simplified version of HttpServer 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Parsers/Libxml2/XmlReader/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XmlReader 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Parsers 16 |   /   17 | Libxml2 18 |   /   19 | XmlReader 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Parsers/Libxml2/XmlWriter/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | XmlWriter 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Parsers 16 |   /   17 | Libxml2 18 |   /   19 | XmlWriter 20 |


21 |


22 | 23 | 24 | 25 | 26 | 27 | 29 | 30 | 33 | 34 |
 
 
 
28 | 31 |

32 |
35 |




36 | 37 | 38 | -------------------------------------------------------------------------------- /docs/reference/Parsers/Yajl/YajlGenParser/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | YajlGenParser 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Parsers 16 |   /   17 | Yajl 18 |   /   19 | YajlGenParser 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
This object can be used to parse YajlGen / HTML / XML. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Parsers/Yajl/YajlParser/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | YajlParser 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Parsers 16 |   /   17 | Yajl 18 |   /   19 | YajlParser 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
This object can be used to parse Yajl / HTML / XML. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEBall/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEBall 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEBall 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEBall binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEBody/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEBody 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEBody 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEBody binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEBox/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEBox 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEBox 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEBox binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEContact/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEContact 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEContact 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEContact binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEContactJoint/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEContactJoint 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEContactJoint 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEContactJoint binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEFixed/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEFixed 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEFixed 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEFixed binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEHinge/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEHinge 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEHinge 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEHinge binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEHinge2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEHinge2 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEHinge2 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEJoint binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEJoint/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEJoint 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEJoint 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEJoint binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEJointGroup/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEJointGroup 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEJointGroup 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEJointGroup binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEMass/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEMass 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEMass 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEMass binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEPlane/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEPlane 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEPlane 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEPlane binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODESimpleSpace/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODESimpleSpace 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODESimpleSpace 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODESimpleSpace binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Physics/ODE/ODEWorld/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ODEWorld 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Physics 16 |   /   17 | ODE 18 |   /   19 | ODEWorld 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
ODEWorld binding 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Server/EditLine/EditLine/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | EditLine 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Server 16 |   /   17 | EditLine 18 |   /   19 | EditLine 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Binding to libedit (BSD version of readline). 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/reference/Server/ReadLine/ReadLine/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ReadLine 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Io Reference

13 |


14 |


15 | Server 16 |   /   17 | ReadLine 18 |   /   19 | ReadLine 20 |


21 |


22 | 23 | 24 | 25 | 26 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 38 | 39 |
Binding to GNU readline. 27 |
 
 
 
33 | 36 |

37 |
40 |




41 | 42 | 43 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit.h: -------------------------------------------------------------------------------- 1 | #import "IoState.h" 2 | #import "IoBox.h" 3 | #import "IoLanguage.h" 4 | #import "IoObjcBridge.h" 5 | #import "Objc2Io.h" 6 | #import "ObjcSubclass.h" -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceUserSettings_HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | IDEWorkspaceUserSettings_SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | IoLanguageKit.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | AAFE00EB13D6526E00649838 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit/IoLanguageKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | com.iolanguage.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSHumanReadableCopyright 26 | Copyright © 2011 Steve Dekorte. All rights reserved. 27 | NSPrincipalClass 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit/IoLanguageKit-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'IoLanguageKit' target in the 'IoLanguageKit' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/IoLanguageKit/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/cleanup.io: -------------------------------------------------------------------------------- 1 | 2 | 3 | Directory directoryNamed("source") directoryNamed("lib") directoryNamed("io") directoryNamed("addons") directories foreach(d, 4 | writeln("cleaning ", d name) 5 | 6 | try(d directoryNamed("source") remove) 7 | d fileNamed("protos") remove 8 | try(d fileNamed("depends") remove) 9 | try(d directoryNamed("tests") remove) 10 | try(d directoryNamed("samples") remove) 11 | d fileNamed("CMakeLists.txt") remove 12 | 13 | try(d directoryNamed("_build") directoryNamed("binaries") remove) 14 | try(d directoryNamed("_build") directoryNamed("lib") remove) 15 | try(d directoryNamed("_build") directoryNamed("objs") remove) 16 | ) 17 | -------------------------------------------------------------------------------- /extras/IoLanguageKit/libevent_core.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/IoLanguageKit/libevent_core.a -------------------------------------------------------------------------------- /extras/IoLanguageKit/libevent_extra.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/IoLanguageKit/libevent_extra.a -------------------------------------------------------------------------------- /extras/IoLanguageKit/libyajl_s.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/IoLanguageKit/libyajl_s.a -------------------------------------------------------------------------------- /extras/IoTest/IoTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/IoTest/IoTest.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | IoTest.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | AABB98ED13DD7EA500B6A0CB 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /extras/IoTest/IoTest/IoCLIController.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | #import 4 | 5 | @interface IoCLIController : NSObject 6 | { 7 | NSWindow *window; 8 | IBOutlet NSTextView *inputTextView; 9 | IBOutlet NSTextView *outputTextView; 10 | } 11 | 12 | @property (assign) IBOutlet NSWindow *window; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /extras/IoTest/IoTest/IoTest-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'IoTest' target in the 'IoTest' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /extras/IoTest/IoTest/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /extras/IoTest/IoTest/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /extras/IoTest/IoTest/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // IoTest 4 | // 5 | // Created by Steve Dekorte on 20110725. 6 | // Copyright 2011 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **)argv); 14 | } 15 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/IntelliJ/readme.txt: -------------------------------------------------------------------------------- 1 | Hi, 2 | 3 | I just translated what I found in the JEdit file for IntelliJ!! 4 | 5 | To install copy Io.xml into "~/.IntelliJIdea60/config/filetypes" 6 | 7 | I'll probably do some live / file templates as well. 8 | 9 | Daniel Bodart 10 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Commands/Run Io Program (ioServer).plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | beforeRunningCommand 6 | nop 7 | command 8 | /usr/local/bin/io "$TM_FILEPATH" 9 | input 10 | document 11 | keyEquivalent 12 | @r 13 | name 14 | Run Io Program (io) 15 | output 16 | showAsTooltip 17 | scope 18 | source.io 19 | uuid 20 | 62BD7F5E-8B3C-4D29-AB50-117842D437BA 21 | 22 | 23 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Commands/Run.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/SyntaxHighlighters/Io.tmbundle/Commands/Run.plist -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Preferences/Indent.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Indentation Rules 7 | settings 8 | 9 | decreaseIndentPattern 10 | \) 11 | indentNextLinePattern 12 | \( 13 | unIndentedLinePattern 14 | ^\s*(#.*)?\s*$ 15 | 16 | uuid 17 | EB6573B8-51A9-4CC0-9D9B-E7A9717F2B76 18 | 19 | 20 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Preferences/Typing Pattern.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Typing Pattern 7 | settings 8 | 9 | highlightPairs 10 | 11 | 12 | " 13 | " 14 | 15 | 16 | ( 17 | ) 18 | 19 | 20 | smartTypingPairs 21 | 22 | 23 | " 24 | " 25 | 26 | 27 | ( 28 | ) 29 | 30 | 31 | 32 | uuid 33 | FF7A3AE5-D4C2-4DB7-B878-842DFCC822B6 34 | 35 | 36 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/actorRun.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | actorRun 7 | name 8 | actorRun 9 | scope 10 | source.io 11 | tabTrigger 12 | actor 13 | uuid 14 | 3BB141BA-DA64-43DF-8C9B-A9FDF5A9757E 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/ancestorWithSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ancestorWithSlot("${1:someSlot}") 7 | name 8 | ancestorWithSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | ancestor 13 | uuid 14 | 17BCA3E6-D55D-4C4B-83C4-27C1E7A41941 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/ancestors.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ancestors 7 | name 8 | ancestors 9 | scope 10 | source.io 11 | tabTrigger 12 | ancestor 13 | uuid 14 | 2C7EED0E-236C-4566-B8E1-7A45CD00FE25 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/appendProto.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | appendProto(${1:SomeProto}) 7 | name 8 | appendProto 9 | scope 10 | source.io 11 | tabTrigger 12 | appendP 13 | uuid 14 | C46FA38F-8F86-4C99-8795-7454F4148B71 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/asCharacter.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | asCharacter 7 | name 8 | asCharacter 9 | scope 10 | source.io 11 | tabTrigger 12 | asC 13 | uuid 14 | F5AC96C1-9E80-467C-A659-DF6E032DA764 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/asNumber 2.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | asNumber 7 | name 8 | asNumber 9 | scope 10 | source.io 11 | tabTrigger 12 | asN 13 | uuid 14 | 2D3DEB4E-0862-404C-96ED-70A04F1C0485 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/asNumber.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | asNumber 7 | name 8 | asNumber 9 | scope 10 | source.io 11 | tabTrigger 12 | asN 13 | uuid 14 | A6E6BBED-A229-41F9-8162-2B5FD93760B5 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/asSimpleString.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | asSimpleString 7 | name 8 | asSimpleString 9 | scope 10 | source.io 11 | tabTrigger 12 | asSim 13 | uuid 14 | E405862D-E6DE-4A97-A1C4-6C757BC4C142 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/asString.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | asString 7 | name 8 | asString 9 | scope 10 | source.io 11 | tabTrigger 12 | asS 13 | uuid 14 | 7E6FE93E-99DF-42D7-B5D0-28977DCEB44C 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/between.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | between(${1:0}, ${2:0}) 7 | name 8 | between 9 | scope 10 | source.io 11 | tabTrigger 12 | bet 13 | uuid 14 | 7AB9DD4B-DD70-4D1A-B4A6-6548E3F4D9BC 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/bitwiseAnd.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | bitwiseAnd($0) 7 | name 8 | bitwiseAnd 9 | scope 10 | source.io 11 | tabTrigger 12 | bit 13 | uuid 14 | 8B212373-5DB1-4144-885C-C6F7BC43E8BA 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/bitwiseComplement.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | bitwiseComplement($0) 7 | name 8 | bitwiseComplement 9 | scope 10 | source.io 11 | tabTrigger 12 | bit 13 | uuid 14 | 555C21F8-741A-4C9C-9ACE-06FD234B75C7 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/bitwiseOr.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | bitwiseOr($0) 7 | name 8 | bitwiseOr 9 | scope 10 | source.io 11 | tabTrigger 12 | bit 13 | uuid 14 | A1100C5B-8121-46CB-8111-B599B1B39821 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/bitwiseXor.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | bitwiseXor($0) 7 | name 8 | bitwiseXor 9 | scope 10 | source.io 11 | tabTrigger 12 | bit 13 | uuid 14 | 47BE3164-ADE0-4C5D-87B0-311FCF2D937A 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/block.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:name} := block( 7 | $0 8 | ) 9 | name 10 | block 11 | scope 12 | source.io 13 | tabTrigger 14 | blk 15 | uuid 16 | 72B4B732-2893-4E90-85C5-467FB355C59E 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/catch.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | catch(${1:Exception}, 7 | $0 8 | ) 9 | name 10 | catch 11 | scope 12 | source.io 13 | tabTrigger 14 | cat 15 | uuid 16 | C2F88D63-FB90-42DE-9FB2-EB180812333D 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/clone.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | clone 7 | name 8 | clone 9 | scope 10 | source.io 11 | tabTrigger 12 | cl 13 | uuid 14 | D324658C-3A98-4F1E-ACFD-5F7C07B4575C 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/coroDo.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | coroDo(${1:someMessage}) 7 | name 8 | coroDo 9 | scope 10 | source.io 11 | tabTrigger 12 | coro 13 | uuid 14 | 5BB171BB-E8A0-44B3-A2E1-4D88703C2C86 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/do.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | do( 7 | $0 8 | ) 9 | name 10 | do 11 | scope 12 | source.io 13 | tabTrigger 14 | do 15 | uuid 16 | DBF789BD-DB6D-4ED5-B7A7-77827F51F45B 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/doFile.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | doFile("${1:someFile.io}") 7 | name 8 | doFile 9 | scope 10 | source.io 11 | tabTrigger 12 | doF 13 | uuid 14 | 395CD038-1184-41A7-B191-3A4AC6AE5DF5 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/doMessage.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | doMessage(${1:msg}) 7 | name 8 | doMessage 9 | scope 10 | source.io 11 | tabTrigger 12 | doM 13 | uuid 14 | 7DE37B7E-B372-4015-AF6B-319C442E4729 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/doString.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | doString("${1:code}") 7 | name 8 | doString 9 | scope 10 | source.io 11 | tabTrigger 12 | doS 13 | uuid 14 | DEE7BDA7-8572-4E76-9508-8982F8EB95B1 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docCategory.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docCategory("${1:Category}") 7 | name 8 | docCategory 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | 0278FBB7-B46D-4607-B7D9-B30F69B1353D 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docCopyright.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docCopyright("${1:Your Name}", 2006) 7 | name 8 | docCopyright 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | 712F16F9-7576-4C86-B8C3-7FD3BFF1FCCA 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docCredits.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docCredits("") 7 | name 8 | docCredits 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | 1D602620-F971-452B-8E82-BD6D8239C62C 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docDescription.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docDescription("${1:Does really neat stuff}") 7 | name 8 | docDescription 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | 6AB10770-A6F4-4EC0-9C0F-12C4DEC36DE8 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docLicense.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docLicense("${1:BSD}") 7 | name 8 | docLicense 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | 0BF13D78-B4DA-4195-B462-CC13DAA812A5 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docObject.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docObject("${1:YourObject}") 7 | name 8 | docObject 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | F3CC2E13-92BE-438A-927F-7B1689C7F2D7 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/docSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | docSlot("${1:yourSlot}", "${2:description}") 7 | name 8 | docSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | doc 13 | uuid 14 | 26F55EA7-4613-44CB-8EE2-2B7E5DFA64FF 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/getLocalSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | getLocalSlot("${1:name}") 7 | name 8 | getLocalSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | get 13 | uuid 14 | 2089B521-0574-40FB-A2E6-0789BE9EC7C1 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/getSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | getSlot("${1:name}") 7 | name 8 | getSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | get 13 | uuid 14 | 86695052-6C3C-416E-A1A6-537026E043F2 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/hasLocalSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | hasLocalSlot("${1:name}") 7 | name 8 | hasLocalSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | has 13 | uuid 14 | 43524F22-69BD-46BB-9D85-49D53742CD7E 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/hasSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | hasSlot("${1:name}") 7 | name 8 | hasSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | has 13 | uuid 14 | AD7BAFC4-C063-4B08-AF88-1FAFC559A973 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/if.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | if( 7 | $0 8 | ) 9 | name 10 | if 11 | scope 12 | source.io 13 | tabTrigger 14 | if 15 | uuid 16 | 20DFD9ED-0855-42FF-A565-B77FC03B647C 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/isKindOf.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | isKindOf(${1:AnObject}) 7 | name 8 | isKindOf 9 | scope 10 | source.io 11 | tabTrigger 12 | isK 13 | uuid 14 | C9AC7A12-78D9-429C-9C94-33310292F300 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/isNil.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | isNil 7 | name 8 | isNil 9 | scope 10 | source.io 11 | tabTrigger 12 | isN 13 | uuid 14 | 39FAC08C-2C08-43D6-8DA8-3EF08ACE132C 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/message.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | message(${1:msg}) 7 | name 8 | message 9 | scope 10 | source.io 11 | tabTrigger 12 | msg 13 | uuid 14 | 1F946C6C-AAC6-4B83-8552-067EDE694D63 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/method.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | ${1:name} := method( 7 | $0 8 | ) 9 | name 10 | method 11 | scope 12 | source.io 13 | tabTrigger 14 | meth 15 | uuid 16 | 6AD7DB6D-6874-4AE5-A0BB-451844AB5204 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/newSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | newSlot("${1:name}") 7 | name 8 | newSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | new 13 | uuid 14 | A5BEE119-386D-4BF3-994D-8E47001230EA 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/perform.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | perform("${1:name}") 7 | name 8 | perform 9 | scope 10 | source.io 11 | tabTrigger 12 | perf 13 | uuid 14 | 706BEC10-DBB5-4C7C-A4FC-2B36484EB2B2 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/performWithArgList.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | performWithArgList("${1:name}", ${2:list(arg1, arg2)}) 7 | name 8 | performWithArgList 9 | scope 10 | source.io 11 | tabTrigger 12 | performW 13 | uuid 14 | 21E626EE-328F-40CC-8350-3BF169A86B0C 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/prependProto.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | prependProto(${1:SomeProto}) 7 | name 8 | prependProto 9 | scope 10 | source.io 11 | tabTrigger 12 | prependP 13 | uuid 14 | 1990B5B2-F30F-47E9-A50D-E6EE7C380221 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/removeAllProtos.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | removeAllProtos 7 | name 8 | removeAllProtos 9 | scope 10 | source.io 11 | tabTrigger 12 | removeA 13 | uuid 14 | 259820FF-370A-4CB7-AEDB-9F075ACC5395 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/removeProto.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | removeProto 7 | scope 8 | source.io 9 | tabTrigger 10 | removeP 11 | uuid 12 | 9BC73A7B-ABEA-41F7-9810-738563C61CB8 13 | 14 | 15 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/removeSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | removeSlot("${1:name}") 7 | name 8 | removeSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | removeS 13 | uuid 14 | 4756E141-7E04-41B4-BC13-7A0F3307F80D 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/return.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | return(${1:val}) 7 | name 8 | return 9 | scope 10 | source.io 11 | tabTrigger 12 | ret 13 | uuid 14 | 5229E1BA-0F7B-44BF-995E-470CAA0D101C 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/setSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | setSlot("${1:name}", ${2:value}) 7 | name 8 | setSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | ss 13 | uuid 14 | A92B36B1-99D6-405F-A9FC-8AB958BBCBD7 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/setSlotWithType.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | setSlotWithType("${1:name}", ${2:value}) 7 | name 8 | setSlotWithType 9 | scope 10 | source.io 11 | tabTrigger 12 | sst 13 | uuid 14 | C2FAF737-4CD7-4634-AFB9-97A216CBAE17 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/try.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | try( 7 | $0 8 | ) 9 | name 10 | try 11 | scope 12 | source.io 13 | tabTrigger 14 | try 15 | uuid 16 | 0E751EFF-4C8E-446E-B113-0477D3089FDC 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/updateSlot.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | updateSlot("${1:name}", ${2:value}) 7 | name 8 | updateSlot 9 | scope 10 | source.io 11 | tabTrigger 12 | us 13 | uuid 14 | 753C6D6B-C855-4D98-8CB1-7FC6FDE4C23D 15 | 16 | 17 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Snippets/while.tmSnippet: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | content 6 | while(${1:aCondition}, 7 | $0 8 | ) 9 | name 10 | while 11 | scope 12 | source.io 13 | tabTrigger 14 | while 15 | uuid 16 | 85EBA076-4400-4F3B-A6CE-F857EE8C215F 17 | 18 | 19 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Templates/Io.tmTemplate/info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | command 6 | if [[ ! -f "$TM_NEW_FILE" ]]; then 7 | TM_YEAR=`date +%Y` \ 8 | TM_DATE=`date +%Y-%m-%d` \ 9 | TM_USERNAME=`niutil -readprop / /users/\$USER realname` \ 10 | perl -pe 's/\$\{([^}]*)\}/$ENV{$1}/g' \ 11 | < source.io > "$TM_NEW_FILE" 12 | fi 13 | extension 14 | io 15 | name 16 | Io 17 | uuid 18 | C00BBEE0-C866-479D-874B-D53B73A5D128 19 | 20 | 21 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Io.tmbundle/Templates/Io.tmTemplate/source.io: -------------------------------------------------------------------------------- 1 | /* 2 | ${TM_NEW_FILE_BASENAME} - ${TM_DATE} 3 | Copyright (c) ${TM_YEAR} ${TM_USERNAME}. All rights reserved. 4 | */ 5 | 6 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/JEdit/_ReadMe.txt: -------------------------------------------------------------------------------- 1 | Hi all, 2 | 3 | Here is attached a simple Io syntax mode for the JEdit text editor. You simply have to put the attached file in your`~/.jedit/modes' directory and add the following line to your `~/.jedit/modes.catalog' file: 4 | 5 | 6 | 7 | Enjoy, 8 | 9 | -- Sebastien Pierre 10 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/Komodo/io-1.2-ko.xpi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/SyntaxHighlighters/Komodo/io-1.2-ko.xpi -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/SubEthaEdit/Io.mode/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleGetInfoString 6 | Io mode, Jason Grossman, 2005 7 | CFBundleIdentifier 8 | IoMode.io 9 | CFBundleInfoDictionaryVersion 10 | 1.2 11 | CFBundleName 12 | Io 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.2 17 | CFBundleVersion 18 | 1.2 19 | TCMModeExtensions 20 | 21 | io 22 | strings 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/SubEthaEdit/Io.mode/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/SyntaxHighlighters/SubEthaEdit/Io.mode/Contents/Resources/English.lproj/InfoPlist.strings -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/SubEthaEdit/Io.mode/Contents/Resources/pole.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/extras/SyntaxHighlighters/SubEthaEdit/Io.mode/Contents/Resources/pole.gif -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/SubEthaEdit/SubEthaEdit Io mode read me.txt: -------------------------------------------------------------------------------- 1 | Users of SubEthaEdit and Io should put the package Io.mode in either: 2 | 3 | * Library/Application Support/SubEthaEdit/Modes (if you want everyone on your computer to be able to use it) 4 | 5 | or 6 | 7 | * ~/Library/Application Support/SubEthaEdit/Modes 8 | 9 | Jason Grossman -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/XCode/Io.pbfilespec: -------------------------------------------------------------------------------- 1 | /** 2 | Io source file specs. 3 | */ 4 | ( 5 | { 6 | Identifier = text.script.io; 7 | BasedOn = text.script; 8 | Extensions = (io); 9 | MIMETypes = ("text/x-io-script"); 10 | MagicWord = ("#! ioVM" 11 | ); 12 | ComputerLanguage = shell.io; 13 | } 14 | ) 15 | -------------------------------------------------------------------------------- /extras/SyntaxHighlighters/XCode/_ReadMe.txt: -------------------------------------------------------------------------------- 1 | Just install the files in: 2 | 3 | /Library/Application Support/Apple/Developer Tools/Specifications 4 | 5 | - Massimiliano Gubinelli -------------------------------------------------------------------------------- /extras/osxvm/osxvm.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /extras/osxvm/osxvm.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | osxvm.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8DD76FA90486AB0100D96B5E 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /extras/symbian/ABLD.BAT: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | REM Bldmake-generated batch file - ABLD.BAT 4 | REM ** DO NOT EDIT ** 5 | 6 | perl -S ABLD.PL \PROJECTS\SYMBIAN\IO20020925\SYMBIAN\ %1 %2 %3 %4 %5 %6 %7 %8 %9 7 | if errorlevel==1 goto CheckPerl 8 | goto End 9 | 10 | :CheckPerl 11 | perl -v >NUL 12 | if errorlevel==1 echo Is Perl, version 5.003_07 or later, installed? 13 | goto End 14 | 15 | :End 16 | -------------------------------------------------------------------------------- /extras/symbian/Bld.inf: -------------------------------------------------------------------------------- 1 | 2 | PRJ_MMPFILES 3 | 4 | io.mmp 5 | -------------------------------------------------------------------------------- /extras/symbian/SymbianSockets.h: -------------------------------------------------------------------------------- 1 | #if !defined(SYMBIANSOCKETS_H) 2 | #define SYMBIANSOCKETS_H 3 | 4 | void initSocketAddons(IoState* state); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /extras/win32vc10/io/io/io.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /extras/win32vc10/io/io2c/io2c.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /extras/win32vc10/io/iovm/scripts/microsed.js: -------------------------------------------------------------------------------- 1 | var s = WScript.StdIn.ReadAll(); 2 | var re = new RegExp(WScript.Arguments(0), "gm"); 3 | var rep = WScript.Arguments(1); 4 | 5 | WScript.StdOut.Write(s.replace(re, rep)); -------------------------------------------------------------------------------- /extras/win32vc10/io/iovm/scripts/microxargs.js: -------------------------------------------------------------------------------- 1 | var f = WScript.StdIn; 2 | 3 | var shell = WScript.CreateObject("WScript.Shell"); 4 | 5 | var cmdString = "" 6 | for(var i = 0; i < WScript.Arguments.count(); i++){ 7 | if (WScript.Arguments(i).indexOf(" ") != -1) 8 | cmdString = cmdString + "\"" + WScript.Arguments(i) + "\" "; 9 | else 10 | cmdString = cmdString + "" + WScript.Arguments(i) + " "; 11 | } 12 | 13 | while (!f.AtEndOfStream) 14 | { 15 | s = f.ReadLine(); 16 | /* 17 | if (s.indexOf(" ") != -1) 18 | cmd = (cmdString + " \"" + s + "\""); 19 | else 20 | */ 21 | cmd = cmdString + " " + s; 22 | 23 | var exec = shell.Exec(cmd); 24 | WScript.StdOut.Write(exec.StdOut.ReadAll()); 25 | } 26 | 27 | -------------------------------------------------------------------------------- /extras/win32vc2005/IoApp/IoAppSetup.h: -------------------------------------------------------------------------------- 1 | #ifndef IOAPPINIT_H 2 | #define IOAPPINIT_H 3 | 4 | void IoAppInit(IoState *self, IoObject *context); 5 | 6 | #endif -------------------------------------------------------------------------------- /extras/win32vc2005/IoApp/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "IoAppInit.h" 6 | 7 | int main(int argc, const char *argv[]) 8 | { 9 | IoState *self = IoState_new(); 10 | 11 | IoState_argc_argv_(self, argc, argv); 12 | 13 | IoState_pauseGarbageCollector(self); 14 | IoAppInit(self, self->lobby); 15 | IoObject_setSlot_to_(self->lobby, SIOSTRING("distribution"), SIOSTRING("IoApp")); 16 | IoState_resumeGarbageCollector(self); 17 | IoState_clearRetainStack(self); 18 | 19 | { 20 | IoCLI *cli = IoCLI_new(); 21 | IoCLI_state_(cli, self); 22 | IoCLI_run(cli); 23 | IoCLI_free(cli); 24 | } 25 | 26 | IoState_free(self); 27 | 28 | //getch(); 29 | 30 | return 0; 31 | } -------------------------------------------------------------------------------- /extras/win32vc2005/freeglut-2.2.0/include/GL/freeglut.h: -------------------------------------------------------------------------------- 1 | #ifndef __FREEGLUT_H__ 2 | #define __FREEGLUT_H__ 3 | 4 | /* 5 | * freeglut.h 6 | * 7 | * The freeglut library include file 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 10 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | */ 16 | 17 | //#define FREEGLUT_STATIC 18 | 19 | #include "freeglut_std.h" 20 | #include "freeglut_ext.h" 21 | 22 | /*** END OF FILE ***/ 23 | 24 | #endif /* __FREEGLUT_H__ */ 25 | -------------------------------------------------------------------------------- /extras/win32vc2005/freeglut-2.2.0/include/GL/glut.h: -------------------------------------------------------------------------------- 1 | #ifndef __GLUT_H__ 2 | #define __GLUT_H__ 3 | 4 | /* 5 | * glut.h 6 | * 7 | * The freeglut library include file 8 | * 9 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 10 | * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 11 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 12 | * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 13 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 14 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 15 | */ 16 | 17 | #include "freeglut_std.h" 18 | 19 | /*** END OF FILE ***/ 20 | 21 | #endif /* __GLUT_H__ */ 22 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/Io-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'Io' target in the 'Io' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/IoAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // IoAppDelegate.h 3 | // Io 4 | // 5 | // Created by Steve Dekorte on 20120104. 6 | // Copyright 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IoAppDelegate : NSObject 12 | { 13 | NSWindow *window; 14 | IBOutlet NSTextView *textView; 15 | } 16 | 17 | @property (assign) IBOutlet NSWindow *window; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/IoAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // IoAppDelegate.m 3 | // Io 4 | // 5 | // Created by Steve Dekorte on 20120104. 6 | // Copyright 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import "IoAppDelegate.h" 10 | 11 | @implementation IoAppDelegate 12 | 13 | @synthesize window; 14 | 15 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification 16 | { 17 | // Insert code here to initialize your application 18 | NSFont *font = [NSFont fontWithName:@"Times New Roman" size:14.0]; 19 | NSDictionary *d = [NSDictionary dictionaryWithObject:font forKey:NSFontAttributeName]; 20 | // [[textView textStorage] setFont:f]; 21 | 22 | NSAttributedString *s = [[[NSAttributedString alloc] initWithString:@">" attributes:d] autorelease]; 23 | [[textView textStorage] appendAttributedString:s]; 24 | [textView setTextContainerInset:NSMakeSize(20, 20)]; 25 | 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/TextDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // TextDelegate.h 3 | // Io 4 | // 5 | // Created by Steve Dekorte on 20120104. 6 | // Copyright 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface TextDelegate : NSObject 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/TextDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // TextDelegate.m 3 | // Io 4 | // 5 | // Created by Steve Dekorte on 20120104. 6 | // Copyright 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import "TextDelegate.h" 10 | 11 | @implementation TextDelegate 12 | 13 | - (id)init 14 | { 15 | self = [super init]; 16 | if (self) { 17 | // Initialization code here. 18 | } 19 | 20 | return self; 21 | } 22 | 23 | - (NSRange)textView:(NSTextView *)aTextView willChangeSelectionFromCharacterRange:(NSRange)oldSelectedCharRange toCharacterRange:(NSRange)newSelectedCharRange 24 | { 25 | //NSLog(@"will change selection"); 26 | return newSelectedCharRange; 27 | } 28 | 29 | - (BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString 30 | { 31 | NSLog(@"will change text '%@'", replacementString); 32 | return YES; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/en.lproj/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /extras/xcode/Io/Io/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Io 4 | // 5 | // Created by Steve Dekorte on 20120104. 6 | // Copyright 2012 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | return NSApplicationMain(argc, (const char **)argv); 14 | } 15 | -------------------------------------------------------------------------------- /libs/basekit/depends: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/libs/basekit/depends -------------------------------------------------------------------------------- /libs/basekit/source/BStreamTag.h: -------------------------------------------------------------------------------- 1 | /* 2 | copyright 3 | Steve Dekorte, 2004 4 | license 5 | BSD revised 6 | */ 7 | 8 | #ifndef BSTREAMTAG_DEFINED 9 | #define BSTREAMTAG_DEFINED 1 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | 15 | #define BSTREAM_UNSIGNED_INT 0 16 | #define BSTREAM_SIGNED_INT 1 17 | #define BSTREAM_FLOAT 2 18 | #define BSTREAM_POINTER 3 19 | 20 | typedef struct { 21 | unsigned int isArray : 1; 22 | unsigned int 23 | type : 2; // 0 = unsigned int, 1 = signed int, 2 = float, 3 = pointer 24 | unsigned int byteCount : 5; // number of bytes in data value(s) 25 | } BStreamTag; 26 | 27 | // values in network byte order / big endian 28 | 29 | BStreamTag BStreamTag_FromUnsignedChar(unsigned char c); 30 | unsigned char BStreamTag_asUnsignedChar(BStreamTag *self); 31 | BStreamTag BStreamTag_TagArray_type_byteCount_(unsigned int a, unsigned int t, 32 | unsigned int b); 33 | int BStreamTag_isEqual_(BStreamTag *self, BStreamTag *other); 34 | void BStreamTag_print(BStreamTag *self); 35 | 36 | char *BStreamTag_typeName(BStreamTag *self); 37 | 38 | #ifdef __cplusplus 39 | } 40 | #endif 41 | #endif 42 | -------------------------------------------------------------------------------- /libs/basekit/source/Base.h: -------------------------------------------------------------------------------- 1 | #ifndef IOBASE_DEFINED 2 | #define IOBASE_DEFINED 1 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /libs/basekit/source/Hash_murmur.h: -------------------------------------------------------------------------------- 1 | unsigned int MurmurHash2(const void *key, int len, unsigned int seed); 2 | -------------------------------------------------------------------------------- /libs/basekit/source/Hash_superfast.h: -------------------------------------------------------------------------------- 1 | uint32_t SuperFastHash(const char *data, int len); -------------------------------------------------------------------------------- /libs/basekit/source/MainArgs.h: -------------------------------------------------------------------------------- 1 | // metadoc MainArgs copyright Steve Dekorte 2002 2 | // metadoc MainArgs license BSD revised 3 | /*metadoc MainArgs description 4 | Structure for copying and storing command line arguments.") 5 | */ 6 | 7 | #ifndef MAINARGS_DEFINED 8 | #define MAINARGS_DEFINED 1 9 | 10 | #include "Common.h" 11 | 12 | #ifdef __cplusplus 13 | extern "C" { 14 | #endif 15 | 16 | typedef struct { 17 | int argc; 18 | const char **argv; 19 | } MainArgs; 20 | 21 | BASEKIT_API MainArgs *MainArgs_new(void); 22 | BASEKIT_API void MainArgs_free(MainArgs *self); 23 | 24 | BASEKIT_API void MainArgs_argc_argv_(MainArgs *self, int argc, 25 | const char **argv); 26 | #define MainArgs_argCount(self) self->argc 27 | #define MainArgs_argAt_(self, index) self->argv[index] 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | #endif 33 | -------------------------------------------------------------------------------- /libs/basekit/source/PointerHash_struct.h: -------------------------------------------------------------------------------- 1 | // PointerHash.h 2 | // CuckooHashTable 3 | // Created by Steve Dekorte on 2009 04 28. 4 | 5 | #ifndef POINTERHASH_STRUCT_DEFINED 6 | #define POINTERHASH_STRUCT_DEFINED 1 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | typedef struct { 13 | void *k; 14 | void *v; 15 | } PointerHashRecord; 16 | 17 | typedef struct { 18 | unsigned char *records; 19 | size_t size; 20 | size_t keyCount; 21 | intptr_t mask; 22 | } PointerHash; 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableGettimeofday.h: -------------------------------------------------------------------------------- 1 | #ifndef PORTABLEGETTIMEOFDAY_DEFINED 2 | #define PORTABLEGETTIMEOFDAY_DEFINED 1 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #if defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(_MSC_VER) 9 | #if defined(_MSC_VER) 10 | #include 11 | /*struct timeval 12 | { 13 | long tv_sec; 14 | long tv_usec; 15 | };*/ 16 | #else 17 | /* for MingW */ 18 | #include 19 | #endif 20 | 21 | #if defined(__MINGW32__) && \ 22 | (3 < __MINGW32_MAJOR_VERSION || \ 23 | 3 == __MINGW32_MAJOR_VERSION && 9 < __MINGW32_MINOR_VERSION) 24 | #else 25 | struct timezone { 26 | int tz_minuteswest; /* of Greenwich */ 27 | int tz_dsttime; /* type of dst correction to apply */ 28 | }; 29 | 30 | #include "Common.h" 31 | BASEKIT_API extern void gettimeofday(struct timeval *tv, struct timezone *tz); 32 | #endif 33 | 34 | #else 35 | #include 36 | #endif 37 | 38 | #ifdef __cplusplus 39 | } 40 | #endif 41 | 42 | #endif 43 | 44 | double secondsSince1970(void); 45 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableSorting.h: -------------------------------------------------------------------------------- 1 | #ifndef PORTABLESORTING_DEFINED 2 | #define PORTABLESORTING_DEFINED 1 3 | 4 | #include "Common.h" 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | /* 11 | The reason for using this instead of C's qsort is 12 | that we need more context information than just the 13 | two objects if we want to do something like use an 14 | Io block to do the comparison and using globals is 15 | unacceptable for several reasons. 16 | 17 | qsort_r isn't available on all platforms. 18 | */ 19 | 20 | // typedef int (ListSortRCallback)(void *, const void *, const void *); 21 | 22 | typedef int (*PortableSortingCompareCallback)(void *context, const void *a, 23 | const void *b); 24 | 25 | BASEKIT_API void portable_qsort_r(void *base, size_t nel, size_t width, 26 | void *context, 27 | PortableSortingCompareCallback compare); 28 | 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableStrlcpy.h: -------------------------------------------------------------------------------- 1 | #ifdef _WIN32 2 | #include // size_t on windows 3 | #else 4 | #include // size_t 5 | #endif 6 | 7 | size_t PortableStrlcpy(char *, const char *, size_t); 8 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableStrptime.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | /*#ifdef IO_NEEDS_STRPTIME */ 8 | char *io_strptime(char *buf, char *fmt, struct tm *tm); 9 | /*#endif*/ 10 | 11 | #ifdef __cplusplus 12 | } 13 | #endif 14 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableTruncate.c: -------------------------------------------------------------------------------- 1 | 2 | #include "PortableTruncate.h" 3 | 4 | int PortableTruncate_justHereToAvoidRanlibWarning(void) { return 0; } 5 | 6 | #if defined(_WIN32) || defined(__MINGW32__) 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | // Win32 truncate by Mike Austin 14 | 15 | int truncate(const char *path, long length) { 16 | HANDLE file = CreateFile(path, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 17 | FILE_SHARE_WRITE | FILE_SHARE_READ, NULL); 18 | 19 | if (file == INVALID_HANDLE_VALUE) { 20 | return -1; 21 | } 22 | 23 | if (SetFilePointer(file, length, NULL, FILE_BEGIN) == 0xFFFFFFFF || 24 | !SetEndOfFile(file)) { 25 | CloseHandle(file); 26 | return -1; 27 | } 28 | 29 | CloseHandle(file); 30 | return 0; 31 | } 32 | 33 | #endif 34 | 35 | #if defined(__SYMBIAN32__) 36 | int truncate(const char *path, long length) { 37 | // TODO: Implement for Symbian 38 | return -1; 39 | } 40 | #endif 41 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableTruncate.h: -------------------------------------------------------------------------------- 1 | 2 | #ifdef __cplusplus 3 | extern "C" { 4 | #endif 5 | 6 | #ifdef _WIN32 7 | #include "Common.h" 8 | 9 | BASEKIT_API int truncate(const char *path, long length); 10 | 11 | #else 12 | 13 | #include 14 | 15 | #endif 16 | 17 | #ifdef __cplusplus 18 | } 19 | #endif 20 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableUsleep.c: -------------------------------------------------------------------------------- 1 | int PortableUsleep_justHereToAvoidRanlibWarning(void) { return 0; } 2 | 3 | #if defined WIN32 && !defined __MINGW32__ 4 | #include 5 | 6 | int usleep(unsigned int us) { 7 | static LARGE_INTEGER freq; 8 | static int initted = 0; 9 | LARGE_INTEGER s, e, d; 10 | 11 | if (!initted) { 12 | QueryPerformanceFrequency(&freq); 13 | initted = 1; 14 | } 15 | 16 | QueryPerformanceCounter(&s); 17 | d.QuadPart = freq.QuadPart * ((double)us / 1000000.0); 18 | 19 | do { 20 | QueryPerformanceCounter(&e); 21 | } while (e.QuadPart - s.QuadPart < d.QuadPart); 22 | 23 | return 0; 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /libs/basekit/source/PortableUsleep.h: -------------------------------------------------------------------------------- 1 | 2 | #ifdef ON_WINDOWS 3 | #include 4 | #if !defined(WIN32) && !defined(__MINGW32__) 5 | int usleep(unsigned int us); 6 | #endif 7 | #elif !defined(__CYGWIN__) 8 | #include 9 | #endif 10 | -------------------------------------------------------------------------------- /libs/basekit/source/RandomGen.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef RANDOMGEN_DEFINED 4 | #define RANDOMGEN_DEFINED 1 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | #include "Common.h" 11 | 12 | #define RANDOMGEN_N 624 13 | 14 | typedef struct { 15 | unsigned long mt[RANDOMGEN_N]; // the array for the state vector 16 | int mti; // mti==N+1 means mt[N] is not initialized 17 | double y2; // guassian 18 | int use_last; // guassian 19 | } RandomGen; 20 | 21 | BASEKIT_API RandomGen *RandomGen_new(void); 22 | BASEKIT_API void RandomGen_free(RandomGen *self); 23 | 24 | BASEKIT_API void RandomGen_setSeed(RandomGen *self, unsigned long seed); 25 | BASEKIT_API void RandomGen_chooseRandomSeed(RandomGen *self); 26 | 27 | // generates a random number on between 0.0 and 1.0 28 | BASEKIT_API double RandomGen_randomDouble(RandomGen *self); 29 | 30 | BASEKIT_API int RandomGen_randomInt(RandomGen *self); 31 | 32 | BASEKIT_API double RandomGen_gaussian(RandomGen *self, double mean, 33 | double standardDeviation); 34 | 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | #endif 39 | -------------------------------------------------------------------------------- /libs/basekit/source/UArray_character.c: -------------------------------------------------------------------------------- 1 | /* 2 | copyright: Steve Dekorte, 2006. All rights reserved. 3 | license: See _BSDLicense.txt. 4 | */ 5 | 6 | #include "UArray.h" 7 | #include 8 | #include 9 | 10 | // set 11 | 12 | #define UARRAY_IOP(OP) \ 13 | void UArray_##OP(UArray *self) { \ 14 | UARRAY_FOREACHASSIGN(self, i, v, OP((int)v)); \ 15 | } 16 | 17 | UARRAY_IOP(isalnum); 18 | UARRAY_IOP(isalpha); 19 | UARRAY_IOP(iscntrl); 20 | UARRAY_IOP(isdigit); 21 | UARRAY_IOP(isgraph); 22 | UARRAY_IOP(islower); 23 | UARRAY_IOP(isprint); 24 | UARRAY_IOP(ispunct); 25 | UARRAY_IOP(isspace); 26 | UARRAY_IOP(isupper); 27 | UARRAY_IOP(isxdigit); 28 | 29 | UARRAY_IOP(tolower); 30 | UARRAY_IOP(toupper); 31 | 32 | BASEKIT_API int UArray_isLowercase(UArray *self) { 33 | UARRAY_INTFOREACH(self, i, v, if (v != tolower((int)v)) return 0); 34 | return 1; 35 | } 36 | 37 | BASEKIT_API int UArray_isUppercase(UArray *self) { 38 | UARRAY_INTFOREACH(self, i, v, if (v != toupper((int)v)) return 0); 39 | return 1; 40 | } 41 | -------------------------------------------------------------------------------- /libs/basekit/source/UArray_character.h: -------------------------------------------------------------------------------- 1 | /* 2 | copyright: Steve Dekorte, 2006. All rights reserved. 3 | license: See _BSDLicense.txt. 4 | */ 5 | 6 | BASEKIT_API void UArray_isalnum(UArray *self); 7 | BASEKIT_API void UArray_isalpha(UArray *self); 8 | BASEKIT_API void UArray_iscntrl(UArray *self); 9 | BASEKIT_API void UArray_isdigit(UArray *self); 10 | BASEKIT_API void UArray_isgraph(UArray *self); 11 | BASEKIT_API void UArray_islower(UArray *self); 12 | BASEKIT_API void UArray_isprint(UArray *self); 13 | BASEKIT_API void UArray_ispunct(UArray *self); 14 | BASEKIT_API void UArray_isspace(UArray *self); 15 | BASEKIT_API void UArray_isupper(UArray *self); 16 | BASEKIT_API void UArray_isxdigit(UArray *self); 17 | BASEKIT_API void UArray_tolower(UArray *self); 18 | BASEKIT_API void UArray_toupper(UArray *self); 19 | 20 | BASEKIT_API int UArray_isLowercase(UArray *self); 21 | BASEKIT_API int UArray_isUppercase(UArray *self); 22 | -------------------------------------------------------------------------------- /libs/basekit/source/UArray_format.h: -------------------------------------------------------------------------------- 1 | /* 2 | copyright: Steve Dekorte, 2006. All rights reserved. 3 | license: See _BSDLicense.txt. 4 | */ 5 | 6 | BASEKIT_API UArray *UArray_newWithFormat_(const char *format, ...); 7 | BASEKIT_API UArray *UArray_newWithVargs_(const char *format, va_list ap); 8 | BASEKIT_API UArray *UArray_fromFormat_(UArray *self, const char *format, ...); 9 | BASEKIT_API void UArray_fromVargs_(UArray *self, const char *format, 10 | va_list ap); 11 | 12 | BASEKIT_API UArray *UArray_asNewHexStringUArray(UArray *self); 13 | -------------------------------------------------------------------------------- /libs/basekit/source/UArray_stream.h: -------------------------------------------------------------------------------- 1 | /* 2 | copyright: Steve Dekorte, 2006. All rights reserved. 3 | license: See _BSDLicense.txt. 4 | */ 5 | 6 | // these return item read/written count or -1 on error 7 | 8 | // read 9 | 10 | BASEKIT_API size_t UArray_fread_(UArray *self, FILE *fp); 11 | BASEKIT_API long UArray_readFromCStream_(UArray *self, FILE *stream); 12 | BASEKIT_API long UArray_readFromFilePath_(UArray *self, const UArray *path); 13 | BASEKIT_API long 14 | UArray_readNumberOfItems_fromCStream_(UArray *self, size_t size, FILE *stream); 15 | BASEKIT_API int UArray_readLineFromCStream_(UArray *self, FILE *stream); 16 | 17 | // write 18 | 19 | BASEKIT_API size_t UArray_fwrite_(const UArray *self, size_t size, 20 | FILE *stream); 21 | BASEKIT_API long UArray_writeToCStream_(const UArray *self, FILE *stream); 22 | BASEKIT_API long UArray_writeToFilePath_(const UArray *self, 23 | const UArray *path); 24 | -------------------------------------------------------------------------------- /libs/basekit/source/UArray_utf.h: -------------------------------------------------------------------------------- 1 | /* 2 | copyright: Steve Dekorte, 2006. All rights reserved. 3 | license: See _BSDLicense.txt. 4 | */ 5 | 6 | BASEKIT_API int UArray_convertToFixedSizeType(UArray *self); 7 | 8 | BASEKIT_API size_t 9 | UArray_numberOfCharacters(const UArray *self); // returns 0 on error 10 | 11 | BASEKIT_API int UArray_maxCharSize(const UArray *self); 12 | BASEKIT_API int UArray_isMultibyte(const UArray *self); 13 | BASEKIT_API int UArray_isLegalUTF8(const UArray *self); 14 | 15 | BASEKIT_API UArray *UArray_asUTF8(const UArray *self); 16 | BASEKIT_API UArray *UArray_asUCS2(const UArray *self); 17 | BASEKIT_API UArray *UArray_asUCS4(const UArray *self); 18 | 19 | BASEKIT_API void UArray_convertToUTF8(UArray *self); 20 | BASEKIT_API void UArray_convertToUCS2(UArray *self); 21 | BASEKIT_API void UArray_convertToUCS4(UArray *self); 22 | -------------------------------------------------------------------------------- /libs/basekit/source/cdecode.h: -------------------------------------------------------------------------------- 1 | /* 2 | cdecode.h - c header for a base64 decoding algorithm 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CDECODE_H 9 | #define BASE64_CDECODE_H 10 | 11 | typedef enum { step_a, step_b, step_c, step_d } base64_decodestep; 12 | 13 | typedef struct { 14 | base64_decodestep step; 15 | char plainchar; 16 | } base64_decodestate; 17 | 18 | void base64_init_decodestate(base64_decodestate *state_in); 19 | 20 | int base64_decode_value(char value_in); 21 | 22 | int base64_decode_block(const char *code_in, const int length_in, 23 | char *plaintext_out, base64_decodestate *state_in); 24 | 25 | #endif /* BASE64_CDECODE_H */ 26 | -------------------------------------------------------------------------------- /libs/basekit/source/cencode.h: -------------------------------------------------------------------------------- 1 | /* 2 | cencode.h - c header for a base64 encoding algorithm 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CENCODE_H 9 | #define BASE64_CENCODE_H 10 | 11 | typedef enum { step_A, step_B, step_C } base64_encodestep; 12 | 13 | typedef struct { 14 | base64_encodestep step; 15 | char result; 16 | int stepcount; 17 | int chars_per_line; 18 | } base64_encodestate; 19 | 20 | void base64_init_encodestate(base64_encodestate *state_in); 21 | 22 | char base64_encode_value(char value_in); 23 | 24 | int base64_encode_block(const char *plaintext_in, int length_in, char *code_out, 25 | base64_encodestate *state_in); 26 | 27 | int base64_encode_blockend(char *code_out, base64_encodestate *state_in); 28 | 29 | #endif /* BASE64_CENCODE_H */ 30 | -------------------------------------------------------------------------------- /libs/basekit/source/simd_cph/test/Makefile: -------------------------------------------------------------------------------- 1 | 2 | CC = gcc 3 | 4 | # X86 5 | #COPTS = -I../include -g -O2 -mmmx -msse 6 | #PLATFORM = X86 7 | DIS = objdump -d -S 8 | 9 | # EMULATED 10 | COPTS = -I../include -D__SIMD_EMU__ -g -O2 11 | PLATFORM = emu 12 | 13 | default: test_simd.c emulated 14 | ${CC} ${COPTS} -o test_simd_${PLATFORM} test_simd.c 15 | 16 | emulated: test_simd.c 17 | ${CC} ${COPTS} -D__SIMD_EMU__ -o test_simd_emu test_simd.c 18 | 19 | xdiff: default emulated 20 | ${DIS} test_simd_${PLATFORM} > test_simd_${PLATFORM}.dis 21 | ${DIS} test_simd_emu > test_simd_emu.dis 22 | xdiff test_simd_emu.dis test_simd_${PLATFORM}.dis 23 | 24 | clean: 25 | rm test_simd_${PLATFORM} test_simd_emu *.dis 26 | -------------------------------------------------------------------------------- /libs/basekit/source/simd_cph/test/test_simd_emu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/libs/basekit/source/simd_cph/test/test_simd_emu -------------------------------------------------------------------------------- /libs/basekit/source/utf_convert.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2009 Bjoern Hoehrmann 2 | // See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. 3 | 4 | typedef unsigned char UTF8; /* typically 8 bits */ 5 | typedef unsigned char Boolean; /* 0 or 1 */ 6 | 7 | Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd); 8 | -------------------------------------------------------------------------------- /libs/coroutine/depends: -------------------------------------------------------------------------------- 1 | basekit -------------------------------------------------------------------------------- /libs/coroutine/samples/Makefile: -------------------------------------------------------------------------------- 1 | twoCoroTest: twoCoroTest.c 2 | $(CC) -I../../basekit/_build/headers -I../_build/headers -L../_build/lib -o $@ $< -lcoroutine 3 | 4 | -------------------------------------------------------------------------------- /libs/coroutine/samples/twoCoroTest.c: -------------------------------------------------------------------------------- 1 | #include "Coro.h" 2 | #include 3 | 4 | Coro *firstCoro, *secondCoro; 5 | 6 | void secondTask(void *context) { 7 | int num = 0; 8 | 9 | printf("secondTask created with value %d\n", *(int *)context); 10 | 11 | while (1) { 12 | printf("secondTask: %d %d\n", (int)Coro_bytesLeftOnStack(secondCoro), 13 | num++); 14 | Coro_switchTo_(secondCoro, firstCoro); 15 | } 16 | } 17 | 18 | void firstTask(void *context) { 19 | int value = 2; 20 | int num = 0; 21 | 22 | printf("firstTask created with value %d\n", *(int *)context); 23 | secondCoro = Coro_new(); 24 | Coro_startCoro_(firstCoro, secondCoro, (void *)&value, secondTask); 25 | 26 | while (1) { 27 | printf("firstTask: %d %d\n", (int)Coro_bytesLeftOnStack(firstCoro), 28 | num++); 29 | Coro_switchTo_(firstCoro, secondCoro); 30 | } 31 | } 32 | 33 | int main() { 34 | Coro *mainCoro = Coro_new(); 35 | int value = 1; 36 | 37 | Coro_initializeMainCoro(mainCoro); 38 | 39 | firstCoro = Coro_new(); 40 | Coro_startCoro_(mainCoro, firstCoro, (void *)&value, firstTask); 41 | } 42 | -------------------------------------------------------------------------------- /libs/garbagecollector/depends: -------------------------------------------------------------------------------- 1 | basekit -------------------------------------------------------------------------------- /libs/iovm/depends: -------------------------------------------------------------------------------- 1 | basekit coroutine garbagecollector 2 | -------------------------------------------------------------------------------- /libs/iovm/io/A0_Object.io: -------------------------------------------------------------------------------- 1 | //doc Object addTrait Takes another object, whose slots will be copied into the receiver. Optionally takes a second argument, a Map object containing string -> string pairs, holding conflicting slot names and names to rename them to. I.e., if you have two objects A and B, both have a slot named foo, you issue A addTrait(B, Map clone atPut("foo", "newFoo")) the value of B foo will be placed in A newFoo. 2 | Object addTrait := method(obj, 3 | if(call message arguments size == 0, 4 | Exception raise("addTrait requires at least one argument")) 5 | resolutions := call evalArgAt(1) 6 | if(resolutions isNil, resolutions = Map clone) 7 | 8 | getSlot("obj") foreachSlot(name, value, 9 | if(getSlot("self") hasLocalSlot(name), 10 | if(name == "type", continue) 11 | if(resolutions at(name) isNil, Exception raise("""Slot '#{name}' already exists in #{getSlot("self") type}[#{getSlot("self") uniqueId}]. Give it a new name in the map argument.""" interpolate)) 12 | getSlot("self") setSlot(resolutions at(name), getSlot("value")) 13 | continue 14 | ) 15 | getSlot("self") setSlot(name, getSlot("value")) 16 | ) 17 | 18 | getSlot("self") 19 | ) 20 | -------------------------------------------------------------------------------- /libs/iovm/io/CFunction.io: -------------------------------------------------------------------------------- 1 | getSlot("CFunction") do( 2 | 3 | //doc CFunction name Returns the CFunction name in the form CFunction_Pointer. 4 | name := method(typeName ifNilEval("Object") .. "_" .. uniqueName ifNilEval("") .. "()") 5 | 6 | //doc CFunction asSimpleString Returns the CFunction name. 7 | asSimpleString := method(name) 8 | 9 | //doc CFunction asString Same as asSimpleString. 10 | asString := getSlot("asSimpleString") 11 | ) 12 | -------------------------------------------------------------------------------- /libs/iovm/io/Debugger.io: -------------------------------------------------------------------------------- 1 | Debugger do( 2 | /*doc Debugger description 3 | To start debugging a coroutine, call 4 | 5 | Coroutine currentCoroutine setMessageDebugging(true) 6 | 7 | Then each message sent within that coroutine will cause the Debugger 8 | vmWillSendMessage slot to be activated and the Debugger slots: 9 | messageCoroutine, messageSelf, messageLocals, and message will be set with the 10 | values related to the current message send. You can override vmWillSendMessage to 11 | implement your own debugging mechanisms. 12 | */ 13 | 14 | //doc Debugger start Starts the debugger. 15 | start := method( 16 | loop( 17 | self vmWillSendMessage(self message name) 18 | messageCoroutine resume 19 | ) 20 | ) 21 | 22 | //doc Debugger vmWillSendMessage Override this method to implement your own debugging mechanisms. Default behavior is to print every message sent. 23 | vmWillSendMessage := method( 24 | writeln("Debugger vmWillSendMessage(", self message name, ")") 25 | ) 26 | 27 | //doc Debugger debuggerCoroutine Returns the coroutine used for the debugger. 28 | debuggerCoroutine := coroFor(start) 29 | yield 30 | ) 31 | 32 | 33 | -------------------------------------------------------------------------------- /libs/iovm/io/DynLib.io: -------------------------------------------------------------------------------- 1 | DynLib do( 2 | init := method( 3 | self forward := method( 4 | self performWithArgList("call", list(call message name, call message arguments map(x, self doMessage(x))) flatten) 5 | ) 6 | ) 7 | ) 8 | -------------------------------------------------------------------------------- /libs/iovm/io/Message.io: -------------------------------------------------------------------------------- 1 | Message do( 2 | /*doc Message union(other) Creates a union of the receiver and the other parameter. 3 | Returns a new message object with the receivers message as the first argument of the returned message, 4 | and the other parameter's arguments as each successive argument to the new message. 5 |
6 |
 7 |   Io> message(a) union(message(b))
 8 |   ==> [unnamed](a, b)
 9 |   
10 | */ 11 | union := method( 12 | r := Message clone 13 | l := list(self) 14 | call message argAt(0) arguments foreach(arg, l append(arg)) 15 | r setArguments(l) 16 | ) 17 | 18 | //doc Message asSimpleString Returns one-line string representation up to 40 characters long. 19 | asSimpleString := method( 20 | s := self asString asMutable replaceSeq(" ;\n", "; ") 21 | if(s size > 40, 22 | s exclusiveSlice(0, 37) .. "..." 23 | , 24 | s 25 | ) 26 | ) 27 | ) 28 | -------------------------------------------------------------------------------- /libs/iovm/io/Sandbox.io: -------------------------------------------------------------------------------- 1 | Sandbox do( 2 | //doc Sandbox printCallback(string) default implementation is; method(string, string print) 3 | printCallback := method(string, string print) 4 | ) 5 | -------------------------------------------------------------------------------- /libs/iovm/io/Vector.io: -------------------------------------------------------------------------------- 1 | Sequence do( 2 | x := method(at(0)) 3 | y := method(at(1)) 4 | z := method(at(2)) 5 | setX := method(a, atPut(0, a); self) 6 | setY := method(a, atPut(1, a); self) 7 | setZ := method(a, atPut(2, a); self) 8 | set := method(call evalArgs foreach(i, v, atPut(i, v))) 9 | rootMeanSquare := method(meanSquare sqrt) 10 | ) 11 | 12 | Sequence addEquals := Sequence getSlot("+=") 13 | -------------------------------------------------------------------------------- /libs/iovm/io/_old/A0__.io: -------------------------------------------------------------------------------- 1 | Object do( 2 | deprecated := method(Exception raise("deprecated method")) 3 | ) 4 | -------------------------------------------------------------------------------- /libs/iovm/io/_test/System.io: -------------------------------------------------------------------------------- 1 | /* 2 | options := System getOptions(args) clone 3 | options foreach(k, v, 4 | if(v type == List type, 5 | v foreach(i, j, writeln("Got unnamed argument with value: " .. j)) 6 | continue 7 | ) 8 | writeln("Got option: " .. k .. " with value: " .. v) 9 | ) 10 | */ 11 | -------------------------------------------------------------------------------- /libs/iovm/samples/VectorPerformance.io: -------------------------------------------------------------------------------- 1 | 2 | 3 | iters := 1000 4 | size := 1024 5 | ops := iters * size 6 | 7 | v1 := Vector clone setSize(size) rangeFill 8 | v2 := Vector clone setSize(size) rangeFill 9 | 10 | dt := Date secondsToRun( 11 | iters repeat(v1 *= v2) 12 | ) 13 | 14 | writeln(dt, " seconds for ", ops, " ops") 15 | writeln((ops/(dt*1000000000)) asString(1, 3), " GFLOPS") 16 | 17 | 18 | -------------------------------------------------------------------------------- /libs/iovm/source/IoCollector.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Collector copyright Steve Dekorte 2002 3 | // metadoc Collector license BSD revised 4 | 5 | #ifndef IoCollector_DEFINED 6 | #define IoCollector_DEFINED 1 7 | 8 | #include "IoObject.h" 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | IoObject *IoCollector_proto(void *state); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | #endif 20 | -------------------------------------------------------------------------------- /libs/iovm/source/IoCompiler.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Compiler copyright Steve Dekorte 2002 3 | // metadoc Compiler license BSD revised 4 | 5 | #ifndef IoCompiler_DEFINED 6 | #define IoCompiler_DEFINED 1 7 | 8 | #include "IoObject.h" 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | IoObject *IoCompiler_proto(void *state); 15 | 16 | IO_METHOD(IoObject, tokensForString); 17 | IO_METHOD(IoObject, messageForTokens); 18 | IO_METHOD(IoObject, messageForString); 19 | IO_METHOD(IoObject, messageForString2); 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | #endif 25 | -------------------------------------------------------------------------------- /libs/iovm/source/IoContext.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Context copyright Steve Dekorte 2002 3 | // metadoc Context license BSD revised 4 | 5 | #ifndef IOCONTEXT_DEFINED 6 | #define IOCONTEXT_DEFINED 1 7 | 8 | #include "IoObject_struct.h" 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | typedef struct { 15 | void *self; // activationContext 16 | void *locals; // currentContext 17 | void *message; 18 | void *slotContext; 19 | } IoContext; 20 | 21 | #define IOCONTEXT(self, locals, message) ((IoContext *){self, locals, message}) 22 | 23 | /* 24 | 25 | #define SELF (context->self) 26 | #define LOCALS (context->locals) 27 | #define MESSAGE (context->message) 28 | 29 | example: 30 | 31 | IO_METHOD(IoDuration, days); 32 | 33 | becomes: 34 | 35 | IoObject *IoDuration_days(IoContext *context); 36 | */ 37 | 38 | #ifdef __cplusplus 39 | } 40 | #endif 41 | #endif 42 | -------------------------------------------------------------------------------- /libs/iovm/source/IoDebugger.c: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Debugger category Core 3 | // metadoc Debugger copyright Steve Dekorte 2002 4 | // metadoc Debugger license BSD revised 5 | /*metadoc Debugger description 6 | Contains methods related to the IoVM debugger. 7 | */ 8 | 9 | #include "IoDebugger.h" 10 | #include "IoMessage_parser.h" 11 | 12 | IoObject *IoDebugger_proto(void *state) { 13 | IoMethodTable methodTable[] = { 14 | {NULL, NULL}, 15 | }; 16 | 17 | IoObject *self = IoObject_new(state); 18 | IoObject_setSlot_to_(self, IOSYMBOL("type"), IOSYMBOL("Debugger")); 19 | IoObject_addMethodTable_(self, methodTable); 20 | return self; 21 | } 22 | -------------------------------------------------------------------------------- /libs/iovm/source/IoDebugger.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Debugger copyright Steve Dekorte 2002 3 | // metadoc Debugger license BSD revised 4 | 5 | #ifndef IoDebugger_DEFINED 6 | #define IoDebugger_DEFINED 1 7 | 8 | #include "IoObject.h" 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | IoObject *IoDebugger_proto(void *state); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | #endif 20 | -------------------------------------------------------------------------------- /libs/iovm/source/IoError.h: -------------------------------------------------------------------------------- 1 | // metadoc Error copyright Rich Collins 2008 2 | // metadoc Error license BSD revised 3 | 4 | #ifndef IOERROR_DEFINED 5 | #define IOERROR_DEFINED 1 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | #include "IoObject.h" 12 | 13 | #define ISERROR(self) \ 14 | IoObject_hasCloneFunc_(self, (IoTagCloneFunc *)IoError_rawClone) 15 | 16 | typedef IoObject IoError; 17 | 18 | IoError *IoError_rawClone(IoError *self); 19 | IoError *IoError_proto(void *state); 20 | IoError *IoError_new(void *state); 21 | 22 | void IoError_free(IoError *self); 23 | void IoError_mark(IoError *self); 24 | 25 | IOVM_API IoObject *IoError_newWithMessageFormat_(void *state, 26 | const char *format, ...); 27 | IOVM_API IoObject *IoError_newWithCStringMessage_(IoState *state, 28 | char *cString); 29 | 30 | #ifdef __cplusplus 31 | } 32 | #endif 33 | #endif 34 | -------------------------------------------------------------------------------- /libs/iovm/source/IoFile_stat.h: -------------------------------------------------------------------------------- 1 | // metadoc File copyright Steve Dekorte 2002 2 | // metadoc File license BSD revised 3 | 4 | #ifndef IOSEQ_FNMATCH_DEFINED 5 | #define IOSEQ_FNMATCH_DEFINED 1 6 | 7 | #include "IoFile.h" 8 | 9 | void IoFile_statInit(IoFile *self); 10 | 11 | IO_METHOD(IoFile, stat); 12 | 13 | IO_METHOD(IoFile, protectionMode); 14 | IO_METHOD(IoFile, lastAccessDate); 15 | IO_METHOD(IoFile, lastInfoChangeDate); 16 | IO_METHOD(IoFile, lastDataChangeDate); 17 | IO_METHOD(IoFile, userId); 18 | IO_METHOD(IoFile, groupId); 19 | IO_METHOD(IoFile, statSize); 20 | 21 | IO_METHOD(IoFile, isDirectory); 22 | IO_METHOD(IoFile, isPipe); 23 | IO_METHOD(IoFile, isLink); 24 | IO_METHOD(IoFile, isRegularFile); 25 | IO_METHOD(IoFile, isSocket); 26 | 27 | IO_METHOD(IoFile, isUserExecutable); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /libs/iovm/source/IoMessage_opShuffle.h: -------------------------------------------------------------------------------- 1 | /* 2 | copyright 3 | Jonathan Wright, 2006 4 | licence 5 | BSD revised 6 | */ 7 | 8 | #ifndef IOMESSAGE_OPSHUFFLE_DEFINED 9 | #define IOMESSAGE_OPSHUFFLE_DEFINED 1 10 | 11 | #include "IoMessage.h" 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | IoMessage *IoMessage_opShuffle(IoMessage *self, IoObject *locals, IoMessage *m); 18 | void IoMessage_opShuffle_(IoMessage *self); 19 | 20 | #ifdef __cplusplus 21 | } 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /libs/iovm/source/IoMessage_parser.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Message copyright Steve Dekorte 2002 3 | // metadoc Message license BSD revised 4 | 5 | #ifndef IOMESSAGE_PARSER_DEFINED 6 | #define IOMESSAGE_PARSER_DEFINED 1 7 | 8 | #include "IoMessage.h" 9 | #include "IoLexer.h" 10 | 11 | #ifdef __cplusplus 12 | extern "C" { 13 | #endif 14 | 15 | IoMessage *IoMessage_newFromText_label_(void *state, const char *text, 16 | const char *label); 17 | IoMessage *IoMessage_newFromText_labelSymbol_(void *state, const char *text, 18 | IoSymbol *label); 19 | IoMessage *IoMessage_newParse(void *state, IoLexer *lexer); 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | #endif 25 | -------------------------------------------------------------------------------- /libs/iovm/source/IoObject_flow.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Object copyright Steve Dekorte 2002 3 | // metadoc Object license BSD revised 4 | 5 | // loop 6 | 7 | IO_METHOD(IoObject, loop); 8 | IO_METHOD(IoObject, while); 9 | IO_METHOD(IoObject, foreachSlot); 10 | IO_METHOD(IoObject, for); 11 | 12 | // break 13 | 14 | IO_METHOD(IoObject, returnIfNonNil); 15 | IO_METHOD(IoObject, return ); 16 | IO_METHOD(IoObject, break); 17 | IO_METHOD(IoObject, continue); 18 | IO_METHOD(IoObject, stopStatus); 19 | 20 | // branch 21 | 22 | IO_METHOD(IoObject, if); 23 | IO_METHOD(IoObject, if2); 24 | -------------------------------------------------------------------------------- /libs/iovm/source/IoProfiler.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Collector copyright Steve Dekorte 2002 3 | // metadoc Collector license BSD revised 4 | 5 | #ifndef IoProfiler_DEFINED 6 | #define IoProfiler_DEFINED 1 7 | 8 | #include "IoObject.h" 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | IoObject *IoProfiler_proto(void *state); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | #endif 20 | -------------------------------------------------------------------------------- /libs/iovm/source/IoSeq_inline.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc Sequence copyright Steve Dekorte 2002 3 | // metadoc Sequence license BSD revised 4 | 5 | #ifdef IOSEQ_C 6 | #define IO_IN_C_FILE 7 | #endif 8 | #include "Common_inline.h" 9 | #ifdef IO_DECLARE_INLINES 10 | 11 | /* 12 | IOINLINE int ISMUTABLESEQ(IoObject *self) 13 | { 14 | return ISSEQ(self) && !(IoObject_isSymbol(self)); 15 | } 16 | */ 17 | 18 | #undef IO_IN_C_FILE 19 | #endif 20 | -------------------------------------------------------------------------------- /libs/iovm/source/IoState_coros.c: -------------------------------------------------------------------------------- 1 | //--metadoc State copyright Steve Dekorte 2002 2 | //--metadoc State license BSD revised 3 | 4 | #include "IoState.h" 5 | #include "IoObject.h" 6 | 7 | IoObject *IoState_currentCoroutine(IoState *self) { 8 | return self->currentCoroutine; 9 | } 10 | 11 | void IoState_setCurrentCoroutine_(IoState *self, IoObject *coroutine) { 12 | self->currentCoroutine = coroutine; 13 | self->currentIoStack = IoCoroutine_rawIoStack(coroutine); 14 | Collector_setMarkBeforeSweepValue_(self->collector, coroutine); 15 | } 16 | 17 | void IoState_yield(IoState *self) { 18 | IoMessage_locals_performOn_(self->yieldMessage, self->lobby, self->lobby); 19 | } 20 | -------------------------------------------------------------------------------- /libs/iovm/source/IoState_coros.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc State copyright Steve Dekorte 2002 3 | // metadoc State license BSD revised 4 | 5 | #include "IoVMApi.h" 6 | 7 | IOVM_API IoObject *IoState_currentCoroutine(IoState *self); 8 | IOVM_API void IoState_setCurrentCoroutine_(IoState *self, IoObject *coroutine); 9 | 10 | IOVM_API void IoState_yield(IoState *self); 11 | -------------------------------------------------------------------------------- /libs/iovm/source/IoState_debug.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | void IoState_show(IoState *self); 4 | 5 | IoObject *IoState_replacePerformFunc_with_(IoState *self, 6 | IoTagPerformFunc *oldFunc, 7 | IoTagPerformFunc *newFunc); 8 | 9 | void IoState_debuggingOn(IoState *self); 10 | void IoState_debuggingOff(IoState *self); 11 | 12 | int IoState_hasDebuggingCoroutine(IoState *self); 13 | 14 | void IoState_updateDebuggingMode(IoState *self); 15 | 16 | void IoState_setupUserInterruptHandler(IoState *self); 17 | 18 | void IoState_callUserInterruptHandler(IoState *self); 19 | -------------------------------------------------------------------------------- /libs/iovm/source/IoState_exceptions.c: -------------------------------------------------------------------------------- 1 | 2 | //--metadoc State copyright Steve Dekorte 2002 3 | //--metadoc State license BSD revised 4 | 5 | #include "IoState.h" 6 | #include "IoObject.h" 7 | #include "IoCoroutine.h" 8 | #include "IoSeq.h" 9 | 10 | //#define IOSTATE_SHOW_ERRORS 1 11 | 12 | void IoState_fatalError_(IoState *self, char *error) { 13 | fputs(error, stderr); 14 | fputs("\n", stderr); 15 | exit(-1); 16 | } 17 | 18 | void IoState_error_(IoState *self, IoMessage *m, const char *format, ...) { 19 | IoSymbol *description; 20 | 21 | va_list ap; 22 | va_start(ap, format); 23 | description = IoState_symbolWithUArray_copy_( 24 | self, UArray_newWithVargs_(format, ap), 0); 25 | va_end(ap); 26 | 27 | #ifdef IOSTATE_SHOW_ERRORS 28 | fputs("\nIoState_error_: ", stderr); 29 | fputs(CSTRING(description), stderr); 30 | fputs("\n\n", stderr); 31 | #endif 32 | 33 | while (Collector_isPaused(self->collector)) { 34 | Collector_popPause(self->collector); 35 | } 36 | 37 | { 38 | IoCoroutine *coroutine = IoState_currentCoroutine(self); 39 | IoCoroutine_raiseError(coroutine, description, m); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /libs/iovm/source/IoState_exceptions.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc State copyright Steve Dekorte 2002 3 | // metadoc State license BSD revised 4 | 5 | #include "IoVMApi.h" 6 | 7 | IOVM_API void IoState_fatalError_(IoState *self, char *error); 8 | 9 | IOVM_API void IoState_error_(IoState *self, IoMessage *m, const char *format, 10 | ...); 11 | -------------------------------------------------------------------------------- /libs/iovm/source/IoState_symbols.h: -------------------------------------------------------------------------------- 1 | 2 | // metadoc State copyright Steve Dekorte 2002 3 | // metadoc State license BSD revised 4 | 5 | IOVM_API void IoState_setupCachedNumbers(IoState *self); 6 | IOVM_API IoObject *IoState_numberWithDouble_(IoState *self, double n); 7 | 8 | IOVM_API IoSymbol *IoState_symbolWithUArray_copy_(IoState *self, UArray *ba, 9 | int copy); 10 | IOVM_API IoSymbol * 11 | IoState_symbolWithUArray_copy_convertToFixedWidth(IoState *self, UArray *ba, 12 | int copy); 13 | IOVM_API IoSymbol *IoState_symbolWithCString_(IoState *self, const char *s); 14 | IOVM_API IoSymbol * 15 | IoState_symbolWithCString_length_(IoState *self, const char *s, size_t length); 16 | 17 | IOVM_API IoSymbol *IoState_addSymbol_(IoState *self, IoSymbol *s); 18 | IOVM_API void IoState_removeSymbol_(IoState *self, IoSymbol *aString); 19 | -------------------------------------------------------------------------------- /libs/iovm/source/IoVM.h: -------------------------------------------------------------------------------- 1 | 2 | #include "IoBlock.h" 3 | #include "IoSeq.h" 4 | #include "IoCFunction.h" 5 | #include "IoCoroutine.h" 6 | #include "IoDate.h" 7 | #include "IoFile.h" 8 | #include "IoList.h" 9 | #include "IoMap.h" 10 | #include "IoMessage.h" 11 | #include "IoMessage_parser.h" 12 | #include "IoObject.h" 13 | #include "IoState.h" 14 | #include "IoSeq.h" 15 | #include "IoTag.h" 16 | -------------------------------------------------------------------------------- /libs/iovm/source/IoVMApi.h: -------------------------------------------------------------------------------- 1 | #ifndef IOVM_API_H_ 2 | #define IOVM_API_H_ 3 | 4 | #if defined(WIN32) 5 | #if defined(BUILDING_IOVM_DLL) || defined(BUILDING_IOVMALL_DLL) 6 | #define IOVM_API __declspec(dllexport) 7 | #else 8 | #define IOVM_API __declspec(dllimport) 9 | #endif 10 | 11 | #else 12 | #define IOVM_API 13 | #endif 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /libs/iovm/source/IoVersion.h: -------------------------------------------------------------------------------- 1 | #ifndef IO_VERSION_STRING 2 | #define IO_VERSION_STRING "20170906" 3 | #endif 4 | -------------------------------------------------------------------------------- /libs/iovm/source/PHash_struct.h: -------------------------------------------------------------------------------- 1 | // PHash.h 2 | // CuckooHashTable 3 | // Created by Steve Dekorte on 2009 04 28. 4 | 5 | #ifndef PHASH_STRUCT_DEFINED 6 | #define PHASH_STRUCT_DEFINED 1 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | typedef struct { 13 | void *k; 14 | void *v; 15 | } PHashRecord; 16 | 17 | typedef struct { 18 | unsigned char *records; 19 | size_t size; 20 | size_t keyCount; 21 | intptr_t mask; 22 | } PHash; 23 | 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | #endif 28 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/CoroTest.io: -------------------------------------------------------------------------------- 1 | CoroTest := UnitTest clone do( 2 | testRecentInChain := method( 3 | o := Object clone 4 | o s := Sequence clone 5 | o l := method( 6 | j := 1 7 | loop( 8 | s appendSeq("a", j asString, ".") 9 | if(j%2==0, pause) 10 | j = j + 1 11 | ) 12 | ) 13 | 14 | run := method( 15 | o @@l 16 | 17 | for(i,1,4, 18 | yield 19 | o s appendSeq("b", i asString, ".") 20 | if(i==2, o actorCoroutine recentInChain resumeLater) 21 | ) 22 | ) 23 | 24 | run 25 | assertEquals("a1.a2.b1.b2.a3.a4.b3.b4.", o s asString) 26 | ) 27 | ) 28 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/IfTest.io: -------------------------------------------------------------------------------- 1 | IfTest := UnitTest clone do( 2 | 3 | /* 4 | Object if := method(condition, 5 | index = if(condition, 1, 2) 6 | if(call message arguments size > index, 7 | call sender doMessage(call message argAt(index), call sender) 8 | , 9 | if(condition, true, false) 10 | ) 11 | ) 12 | */ 13 | 14 | testIfEval := method( 15 | v := false 16 | if(v := true) 17 | assertTrue(v) 18 | ) 19 | 20 | testTrue := method( 21 | assertTrue(if(true)) 22 | ) 23 | 24 | testTrueExpression := method( 25 | assertEquals(if(true, 1), 1) 26 | ) 27 | 28 | testTrue2Expressions := method( 29 | assertEquals(if(true, 1, 2), 1) 30 | ) 31 | 32 | testFalse := method( 33 | assertFalse(if(false)) 34 | ) 35 | 36 | testFalseExpression := method( 37 | assertFalse(if(false, 1)) 38 | ) 39 | 40 | testFalse2Expressions := method( 41 | assertEquals(if(false, 1, 2), 2) 42 | ) 43 | 44 | testNil := method( 45 | assertFalse(if) 46 | assertFalse(if()) 47 | assertFalse(if(nil)) 48 | ) 49 | 50 | testOtherTrue := method( 51 | assertTrue(if(Object)) 52 | assertTrue(if(13)) 53 | assertTrue(if("foo")) 54 | ) 55 | ) 56 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/LoopTest.io: -------------------------------------------------------------------------------- 1 | 2 | LoopTest := UnitTest clone do( 3 | 4 | testLoop1 := method( 5 | loop( 6 | break 7 | fail 8 | ) 9 | ) 10 | 11 | testLoop2 := method( 12 | i := 0 13 | loop( 14 | i = i + 1 15 | if( i < 10, continue, break) 16 | fail 17 | ) 18 | assertTrue( i == 10 ) 19 | ) 20 | 21 | testLoop3 := method( 22 | i := 0 23 | loop( 24 | i = i + 1 25 | if( i >= 10, break, continue) 26 | fail 27 | ) 28 | assertTrue( i == 10 ) 29 | ) 30 | ) 31 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/MessageTest.io: -------------------------------------------------------------------------------- 1 | 2 | MessageTest := UnitTest clone do( 3 | testClone := method( 4 | message := Message clone 5 | assertNotSame(Message, message) 6 | assertEquals(Message name, message name) 7 | assertEquals(Message next, message next) 8 | assertEquals(Message arguments, message arguments) 9 | ) 10 | ) 11 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/MiscTest.io: -------------------------------------------------------------------------------- 1 | 2 | MiscTest := UnitTest clone do( 3 | testAssignmentMultiplicationBug := method( 4 | e := try (r := 3 * 4) 5 | e catch ( Exception, fail ) 6 | ) 7 | 8 | testActivate := method( 9 | a := Object clone 10 | a activate := method(activateWorks = true) 11 | a setIsActivatable(true) 12 | 13 | activateWorks := false 14 | a 15 | 16 | assertTrue(activateWorks) 17 | ) 18 | ) 19 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/SequenceBitTest.io: -------------------------------------------------------------------------------- 1 | SequenceBitTest := UnitTest clone do( 2 | 3 | testBitsWithinFirstByte := method( 4 | assertEquals(1, 1 asCharacter bitAt(0)) 5 | assertEquals(0, 2 asCharacter bitAt(0)) 6 | assertEquals(1, 2 asCharacter bitAt(1)) 7 | 8 | for(i, 0, 7, assertEquals(0, 0 asCharacter bitAt(i))) 9 | for(i, 0, 7, assertEquals(1, 0xff asCharacter bitAt(i))) 10 | ) 11 | 12 | testBitsWithinSecondByte := method( 13 | assertEquals(1, ("\0" .. 1 asCharacter) bitAt(8 + 0)) 14 | assertEquals(0, ("\0" .. 2 asCharacter) bitAt(8 + 0)) 15 | assertEquals(1, ("\0" .. 2 asCharacter) bitAt(8 + 1)) 16 | 17 | for(i, 0, 7, assertEquals(0, ("\0" .. 0 asCharacter) bitAt(8 + i))) 18 | for(i, 0, 7, assertEquals(1, ("\0" .. 0xff asCharacter) bitAt(8 + i))) 19 | ) 20 | 21 | byteList := method(s, 22 | l := list() 23 | s sizeInBytes repeat(i, 24 | l append(s byteAt(i)) 25 | ) 26 | l 27 | ) 28 | 29 | testByteAtByteItemType := method( 30 | assertEquals(list(97, 98, 99, 100), byteList("abcd")) 31 | ) 32 | 33 | testByteAtTwoByteItemType := method( 34 | assertEquals(list(97, 98, 99, 100), byteList("abcd" asMutable setItemType("uint16"))) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/TraitsTest.io: -------------------------------------------------------------------------------- 1 | TraitsTest := UnitTest clone do( 2 | setUp := method( 3 | super(setUp) 4 | self A := Object clone do(foo := 42) 5 | ) 6 | 7 | testNoConflicts := method( 8 | B := Object clone 9 | B addTrait(A) 10 | assertEquals(42, B foo) 11 | ) 12 | 13 | testConflict := method( 14 | B := Object clone do(foo := 23) 15 | assertRaisesException(B addTrait(A)) 16 | ) 17 | 18 | testConflictRename := method( 19 | B := Object clone do(foo := 23) 20 | B addTrait(A, Map clone atPut("foo", "fooFromA")) 21 | assertEquals(42, B fooFromA) 22 | assertEquals(23, B foo) 23 | ) 24 | 25 | testMissingArguments := method( 26 | assertRaisesException(A addTrait) 27 | ) 28 | ) 29 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/UnicodeTest-helper/UnicodeTest.txt: -------------------------------------------------------------------------------- 1 | Hello, world! 2 | Здравствуй, мир! 3 | この世界お。今日は! 4 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/UnicodeTest-helper/printer.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | scriptPath := method(call message label pathComponent) call 4 | Importer addSearchPath(Path with(scriptPath, "..")) 5 | 6 | args := System args 7 | if(args at(1) == "--print", 8 | UnicodeTest getSlot(args at(2)) print 9 | exit 10 | ) 11 | 12 | if(args at(1) == "--arg", 13 | args at(2) asMutable replaceSeq("\\n", "\n") print 14 | exit 15 | ) 16 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/WeakLinkTest.io: -------------------------------------------------------------------------------- 1 | 2 | WeakLinkTest := UnitTest clone do( 3 | test1 := method( 4 | a := Object clone 5 | self w := WeakLink clone setLink(a) 6 | assertTrue(w link == a) 7 | //a = 1 8 | //Collector collect 9 | ) 10 | test2 := method( 11 | Collector collect 12 | assertTrue(w link == nil) 13 | ) 14 | ) 15 | -------------------------------------------------------------------------------- /libs/iovm/tests/correctness/run.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | if(System args size > 1, 4 | # Run specific tests. 5 | System args slice(1) foreach(name, 6 | try( 7 | if(name endsWithSeq(".io"), 8 | # FIXME: This is platform dependent! 9 | Lobby doFile(System launchPath .. "/" .. name) 10 | , 11 | Lobby doString(name) 12 | ) 13 | ) ?showStack 14 | ) 15 | System exit(FileCollector run size) 16 | , 17 | # Run all tests in the current directory. 18 | System exit(DirectoryCollector run size) 19 | ) 20 | -------------------------------------------------------------------------------- /libs/iovm/tools/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Base Io build system 2 | # Written by Jeremy Tregunna 3 | # 4 | # io2c -- Take an Io script, and "compile" it into C source 5 | # code. I use the term loosely, since all it does is make a 6 | # big C String, and pipe that through IoState's evaluator. 7 | # Nevertheless, this is it! 8 | 9 | # Just build the bloody binary! 10 | add_executable(io2c io2c.c) 11 | -------------------------------------------------------------------------------- /samples/misc/Account.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | Account := Object clone 4 | Account balance := 0.0 5 | Account deposit := method(v, self balance := self balance + v) 6 | Account show := method(write("Account balance: $", balance, "\n")) 7 | 8 | "Inital: " print 9 | Account show 10 | 11 | "Depositing $10\n" print 12 | Account deposit(10.0) 13 | 14 | "Final: " print 15 | Account show 16 | -------------------------------------------------------------------------------- /samples/misc/Ackermann.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | ack := method(m, n, 4 | //writeln("ack(", m, ",", n, ")") 5 | if (m < 1, return n + 1) 6 | if (n < 1, return ack(m - 1, 1)) 7 | return ack(m - 1, ack(m, n - 1)) 8 | ) 9 | 10 | ack(3, 4) print 11 | "\n" print 12 | -------------------------------------------------------------------------------- /samples/misc/BottlesOfBeer.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | bottle := method(i, 4 | if(i==0, return "no more bottles of beer") 5 | if(i==1, return "1 bottle of beer") 6 | return i asString .. " bottles of beer" 7 | ) 8 | 9 | for(i, 99, 1, -1, 10 | write(bottle(i), " on the wall, ", bottle(i), ",\n") 11 | write("take one down, pass it around,\n") 12 | write(bottle(i - 1), " on the wall.\n\n") 13 | ) 14 | -------------------------------------------------------------------------------- /samples/misc/Brackets.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | // pythonish list and map syntax in Io 3 | 4 | Object squareBrackets := Object getSlot("list") 5 | 6 | a := [1, 2, 3] 7 | a println 8 | 9 | curlyBrackets := method( 10 | map := Map clone 11 | call message arguments foreach(arg, arg setName("atPut"); map doMessage(arg)) 12 | map 13 | ) 14 | 15 | {a := 1, b := 2} foreach(k, v, writeln(k, ": ", v)) 16 | -------------------------------------------------------------------------------- /samples/misc/Cards.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | // By Jason Sackett 3 | 4 | Random setSeed(Date clone now asNumber) 5 | 6 | List shuffle := method( 7 | for(i, 1, size - 1, 8 | swapIndices(i, Random value(0, size) floor) 9 | ) 10 | ) 11 | 12 | Deck := Object clone do( 13 | init := method( 14 | self cards := List clone 15 | list("h", "d", "c", "s") foreach(suit, 16 | for(value, 2, 14, cards append(value asString .. suit)) 17 | ) 18 | ) 19 | init 20 | shuffle := method(cards shuffle) 21 | dealCard := method(cards pop) 22 | show := method(cards foreach(i, card, write(card, " ")); "\n" print) 23 | ) 24 | 25 | Deck show 26 | Deck shuffle 27 | Deck show 28 | 29 | Deck dealCard println 30 | Deck dealCard println 31 | Deck dealCard println 32 | -------------------------------------------------------------------------------- /samples/misc/CommandLineArgs.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | // Try running this script with some command line arguments. Example: 3 | // ./io CommandLineArgs.io a b c d 4 | 5 | writeln("Command line arguments:") 6 | System args foreach(println) 7 | -------------------------------------------------------------------------------- /samples/misc/Conditions.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | 4 | a := "foobar" 5 | 6 | 7 | writeln("test1: ", 8 | if(a == "foobar", "OK", "FAILED") 9 | ) 10 | 11 | writeln("test2: ", 12 | if(a == "foo", "FAILED", "OK") 13 | ) 14 | 15 | r := "FAILED" 16 | if( a == "foobar" ) then( 17 | r = "OK" 18 | ) elseif( a == "C" ) then( 19 | r = "FAILED" 20 | ) else ( 21 | r = "FAILED" 22 | ) 23 | writeln("test3: ", r) 24 | 25 | 26 | r := "FAILED" 27 | if( a == "A" ) then ( 28 | r = "FAILED" 29 | ) elseif( a == "foobar" ) then ( 30 | r = "OK" 31 | ) else ( 32 | r = "FAILED" 33 | ) 34 | writeln("test4: ", r) 35 | 36 | r := "FAILED" 37 | if( a == "foobar" ) then ( 38 | r = "OK" 39 | ) elseif( a == "C" ) then ( 40 | r = "FAILED" 41 | ) else ( 42 | r = "FAILED" 43 | ) 44 | writeln("test5: ", r) 45 | -------------------------------------------------------------------------------- /samples/misc/Control.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | // example of implementing control structures 3 | 4 | myif := method(condition, 5 | index := if(condition, 1, 2) 6 | call evalArgAt(index) 7 | ) 8 | 9 | myif(19 > 5, 10 | writeln("19 > 5. Correct.") 11 | , 12 | writeln("19 > 5. Incorrect.") 13 | ) 14 | 15 | -------------------------------------------------------------------------------- /samples/misc/ControlFlow.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | exampleBreak := method( 4 | b := Sequence clone 5 | for(i, 0, 10, if(i == 5, break); b appendSeq(i asString)) 6 | b 7 | ) 8 | 9 | exampleContinue := method( 10 | b := Sequence clone 11 | for(i, 0, 10, if(i == 5, continue); b appendSeq(i asString)) 12 | b 13 | ) 14 | 15 | exampleReturn := method( 16 | b := Sequence clone 17 | for(i, 0, 10, if(i == 5, return b); b appendSeq(i asString)) 18 | b 19 | ) 20 | 21 | writeln("break: ", 22 | if (exampleBreak == "01234", "OK", "FAILED") 23 | ) 24 | 25 | writeln("continue: ", 26 | if (exampleContinue == "01234678910", "OK", "FAILED") 27 | ) 28 | 29 | writeln("return: ", 30 | if (exampleReturn == "01234", "OK", "FAILED") 31 | ) 32 | -------------------------------------------------------------------------------- /samples/misc/Decompile.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | // evaluating a string 4 | 5 | writeln("1 + 2 ==> ", doString("1 + 2")) 6 | 7 | simpleDecompile := method( 8 | // test of decompiling a method 9 | Dog := Object clone 10 | Dog bark := method("woof!" print) 11 | 12 | writeln("simple decompiled method: ", Dog getSlot("bark") code) 13 | ) 14 | 15 | fancyDecompile := method( 16 | writeln("fancy decompile: ", Lobby getSlot("simpleDecompile") asString) 17 | ) 18 | 19 | simpleDecompile 20 | fancyDecompile 21 | -------------------------------------------------------------------------------- /samples/misc/Dir.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | //Directory directories := method(items select(item, item type ==("Directory") and(item name != ".") and(item name != ".."))) 3 | 4 | writeln("") 5 | writeln("items:") 6 | Directory items foreach(path println) 7 | 8 | writeln("") 9 | writeln("directories:") 10 | Directory directories foreach(name println) 11 | 12 | //writeln("") 13 | //writeln("files:") 14 | //Directory files foreach(path println) 15 | 16 | -------------------------------------------------------------------------------- /samples/misc/ErlangChallenge.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | //Collector debugOn 4 | 5 | Test := Object clone do( 6 | next ::= nil 7 | id ::= nil 8 | ping := method( 9 | //writeln("ping ", id) 10 | if(next, next @@ping) 11 | yield 12 | ) 13 | ) 14 | 15 | max := 10000 16 | 17 | t := Test clone 18 | 19 | setup := method( 20 | for(i, 1, max, 21 | t := Test clone setId(i) setNext(t) 22 | t @@id 23 | yield 24 | ) 25 | ) 26 | 27 | writeln(max, " coros") 28 | writeln(Date secondsToRun(setup), " secs to setup") 29 | writeln(Date secondsToRun(t ping; yield), " secs to ping") 30 | -------------------------------------------------------------------------------- /samples/misc/FizzBuzz.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | 4 | // Iterate 1-100 using a 5 | for (a, 1, 100, 6 | 7 | // Print the number 8 | if ((a % 3) != 0 and (a % 5) != 0, 9 | a print 10 | ) 11 | 12 | // Number is divisible by 3 13 | if ((a % 3) == 0, 14 | "Fizz" print 15 | ) 16 | 17 | // Number is divisible by 5 18 | if ((a % 5) == 0, 19 | "Buzz" print 20 | ) 21 | 22 | // Newline 23 | "\n" print 24 | ) 25 | -------------------------------------------------------------------------------- /samples/misc/Foreach.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | a := List clone append(1, 2, 3) 4 | 5 | 6 | b := method( 7 | a foreach(i, v, if(v == 2, return v)) 8 | write("shouldn't get here\n") 9 | ) 10 | 11 | write("b := ", b, "\n") // => 2 12 | -------------------------------------------------------------------------------- /samples/misc/Hanoi.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | H := method(n, f, u, t, 4 | if (n < 2) then ( 5 | writeln(f, " --> ", t) 6 | ) else ( 7 | H(n - 1, f, t, u) 8 | writeln(f, " --> ", t) 9 | H(n - 1, u, f, t) 10 | ) 11 | ) 12 | 13 | hanoi := method(n, 14 | if (n > 0 and n <= 10) then ( 15 | H(n, 1, 2, 3) 16 | ) else ( 17 | writeln("usage: hanoi n, where 0 < n <= 10") 18 | ) 19 | ) 20 | 21 | hanoi(3) 22 | -------------------------------------------------------------------------------- /samples/misc/HelloWorld.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | "Hello world!" println 3 | 4 | // Or 5 | 6 | writeln("Hello world (again)") 7 | -------------------------------------------------------------------------------- /samples/misc/Inheritance.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | // Define a Dog object 4 | 5 | Dog := Object clone 6 | Dog barkPhrase := "woof!" 7 | Dog bark := method(barkPhrase print) 8 | 9 | // Create Chiwawa subclass of Dog 10 | 11 | Chiwawa := Dog clone 12 | Chiwawa barkPhrase := "yip!" 13 | 14 | write("Dog bark: ") 15 | Dog bark 16 | writeln 17 | 18 | write("Chiwawa bark: ") 19 | Chiwawa bark 20 | writeln 21 | 22 | // make an instance 23 | myChiwawa := Chiwawa clone 24 | myChiwawa barkPhrase := "Yo Quiero Taco Bell" 25 | 26 | write("myChiwawa bark: ") 27 | myChiwawa bark 28 | writeln 29 | -------------------------------------------------------------------------------- /samples/misc/MainFile.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | if(isLaunchScript, 4 | # Run from the command line: io MainFile.io 5 | writeln("Wasn't included from another file") 6 | writeln 7 | 8 | writeln("System launchPath: ", System launchPath) 9 | writeln("System launchScript: ", System launchScript) 10 | writeln("System args: ", System args) 11 | , 12 | # Loaded using doFile("MainFile.io") 13 | writeln("Was included from another file") 14 | ) 15 | -------------------------------------------------------------------------------- /samples/misc/SimpleCoro.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | yieldLoop := method(s, 4 | for(i, 1, 3, writeln(s, " ", i); yield) 5 | ) 6 | 7 | coroDo(yieldLoop("a")) 8 | 9 | yieldLoop("b") 10 | 11 | writeln("done") 12 | -------------------------------------------------------------------------------- /samples/misc/Sort.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | words := "video killed the radio star" split 3 | writeln("original: ", words join(" ")) 4 | words = words sortBy(method(a, b, a < b)) 5 | writeln("sortBy: ", words join(" ")) 6 | -------------------------------------------------------------------------------- /samples/misc/Super.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | isDebugging := false 3 | 4 | objs := List clone 5 | 6 | a := Object clone 7 | a init := method( 8 | objs append(self) 9 | if (isDebugging, writeln("a ", self asSimpleString, " init")) 10 | ) 11 | 12 | b := a clone 13 | b init := method( 14 | super(init) 15 | objs append(self) 16 | if (isDebugging, writeln("b ", self asSimpleString, " init")) 17 | ) 18 | 19 | c := b clone 20 | c init := method( 21 | super(init) 22 | objs append(self) 23 | if (isDebugging, writeln("c ", self asSimpleString, " init")) 24 | ) 25 | 26 | if (isDebugging, writeln("------------------")) 27 | 28 | objs empty 29 | objs println 30 | t := c clone 31 | 32 | objs append(t) 33 | 34 | objs foreach(obj, 35 | if (obj != objs first, 36 | writeln("ERROR [not all selfs are the same]") 37 | exit 38 | ) 39 | ) 40 | writeln("OK") 41 | 42 | if (isDebugging, write("t := ", t uniqueId, " init\n")) 43 | -------------------------------------------------------------------------------- /samples/misc/WeakLink.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | weakLink := WeakLink clone setLink(Object clone) 3 | 4 | writeln("WeakLink to ", weakLink link asSimpleString) 5 | 6 | writeln("Collecting") 7 | Collector collect 8 | 9 | if(weakLink link == nil, 10 | writeln("Success: Object gone") 11 | , 12 | writeln("Error: Object not gone") 13 | ) 14 | -------------------------------------------------------------------------------- /samples/misc/except.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | e := try(foo) 3 | e catch( 4 | writeln 5 | writeln("caught: ", e error) 6 | writeln("standard reporting:") 7 | e showStack 8 | ) 9 | writeln("done") 10 | -------------------------------------------------------------------------------- /samples/misc/vtest.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | Vector := Sequence clone setItemType("float32") setEncoding("number") 4 | 5 | size := 10000 6 | v1 := Vector clone setSize(size) rangeFill 7 | v2 := Vector clone setSize(size) rangeFill 8 | 9 | loops := 10000 10 | s := Date secondsToRun(loops repeat(v1 += v2)) 11 | 12 | writeln(size*loops/(s*1000000000), " GFLOPS") 13 | 14 | /* 15 | without vectorize 16 | 17 | 1.882818 GFLOPS 18 | 1.985482 GFLOPS 19 | 1.936254 GFLOPS 20 | 1.952277 GFLOPS 21 | 22 | with fastmath 23 | 24 | 1.941543 GFLOPS 25 | 1.918827 GFLOPS 26 | 1.896702 GFLOPS 27 | 2.135502 GFLOPS 28 | 29 | with vectorize and fastmath 30 | 31 | 1.977812 GFLOPS 32 | 2.092639 GFLOPS 33 | 2.039853 GFLOPS 34 | 2.055593 GFLOPS 35 | */ 36 | -------------------------------------------------------------------------------- /samples/shootout/mandelbrot-output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IoLanguage/io/7113659c4342e98e9a86482b25441775fa066a96/samples/shootout/mandelbrot-output.txt -------------------------------------------------------------------------------- /samples/shootout/nsieve.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | /* The Computer Language Shootout 4 | http://shootout.alioth.debian.org 5 | contributed by Robert Brandner */ 6 | 7 | 8 | mkbuf := method(n, 9 | b := List clone 10 | b preallocateToSize(n) 11 | n repeat(b append(true)) 12 | return b 13 | ) 14 | 15 | nsieve := method(n, 16 | primes := mkbuf(n) 17 | cnt := 0 18 | for(i, 2, n, 19 | if(primes at(i), 20 | k := i + i 21 | while (k < n, 22 | primes atPut(k, false) 23 | k = k + i 24 | ) 25 | cnt = cnt + 1 26 | ) 27 | ) 28 | writeln("Primes up to", n asString alignRight(9, " "), cnt asString alignRight(9, " ")) 29 | ) 30 | 31 | n := System args at(1) asNumber 32 | nsieve( (2^n)*10000 ) 33 | nsieve( (2^(n-1))*10000 ) 34 | nsieve( (2^(n-2))*10000 ) 35 | -------------------------------------------------------------------------------- /samples/shootout/nsievebits.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | /* The Great Computer Language Shootout 4 | http://shootout.alioth.debian.org 5 | 6 | contributed by Ian Osgood */ 7 | 8 | Sequence pad := method(w, s:=self; while (s size < w, s=" ".. s) ) 9 | Number clearBit := method(b, &(1 clone shiftLeft(b) bitwiseComplement) ) 10 | 11 | sieve := Object clone do( 12 | flags := Sequence clone do( 13 | isSet := method(i, at(i/8) at(i%8) != 0) 14 | clear := method(i, atPut(i/8, at(i/8) clearBit(i%8) ) ) 15 | ) 16 | show := method(n, 17 | flags setSize((n/8) ceil) 18 | for (i, 0, flags size - 1, flags atPut(i, 255)) 19 | primes := 0 20 | for (i, 2, n-1, 21 | if (flags isSet(i), 22 | primes = primes + 1 23 | if (i+i < n, for (j, i+i, n-1, i, flags clear(j) ) ) 24 | ) 25 | ) 26 | writeln("Primes up to", n asString pad(9), primes asString pad(9)) 27 | ) 28 | ) 29 | 30 | n := System args at(1) asNumber 31 | sieve show(10000 shiftLeft(n)) 32 | sieve show(10000 shiftLeft(n-1)) 33 | sieve show(10000 shiftLeft(n-2)) 34 | -------------------------------------------------------------------------------- /samples/shootout/reverse-complement.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | /* The Great Computer Language Shootout 4 | http://shootout.alioth.debian.org 5 | 6 | Contributed by Ian Osgood */ 7 | 8 | seq := Sequence clone do( 9 | complementAt := method(i, 10 | "TVGHefCDijMlKNopqYSAABWxRz" at(at(i)-65) # "A" at(0) 11 | ) 12 | revComp := method( if (size == 0, return self) 13 | j := uppercase size 14 | for (i, 0, size / 2 - 0.25, 15 | j = j - 1 16 | t := complementAt(j) 17 | atPut(j, complementAt(i)) atPut(i, t) 18 | ) 19 | self 20 | ) 21 | output := method( if (size == 0, return self) 22 | width := 60 23 | start := 0; end := width 24 | while (end < size, 25 | slice(start,end) println 26 | start = end; end = end + width 27 | ) 28 | slice(start) println 29 | self 30 | ) 31 | ) 32 | 33 | input := File standardInput 34 | while (line := input readLine, 35 | if (line beginsWithSeq(">"), 36 | seq revComp output empty; line println, 37 | seq appendSeq(line) ) 38 | ) 39 | seq revComp output 40 | -------------------------------------------------------------------------------- /samples/shootout/spectral-norm.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | /* The Computer Language Shootout 4 | http://shootout.alioth.debian.org 5 | contributed by Gavin Harrison */ 6 | 7 | Range // Load the Range addon 8 | 9 | SNorm:=Object clone do( 10 | App:=method(n, 11 | n1:=n-1 12 | u:=List clone preallocateToSize(n) 13 | v:=List clone preallocateToSize(n) 14 | n repeat(u append(1);v append(0)) 15 | 0 to(9) foreach(n3,n2,MAtAv(n,u,v);MAtAv(n,v,u)) 16 | vBv:=vv:=vAt:=0 17 | for(i,0,n1,vAt=v at(i);vBv=vBv+u at(i)*vAt;vv=vv+(vAt*vAt)) 18 | (vBv/vv)sqrt) 19 | A:=method(i,j,ij:=i+j;1/(ij*(ij+1)/2+i+1)) 20 | MAv:=method(n,v,Av, 21 | n1:=n-1 22 | for(i_i,0,n1, 23 | for(i_j,0,n1,Av atPut(i_i,Av at(i_i)+A(i_i,i_j)*v at(i_j))))) 24 | MAtv:=method(n,v,Atv, 25 | n1:=n-1 26 | for(i_i,0,n1, 27 | Atv atPut(i_i,0) 28 | for(i_j,0,n1,Atv atPut(i_i,Atv at(i_i)+A(i_j, i_i)*v at(i_j))))) 29 | MAtAv:=method(n,v,AtAv, 30 | u:=List clone preallocateToSize(n) 31 | n repeat(u append(0)) 32 | MAv(n,v,u) 33 | MAtv(n,u,AtAv))) 34 | n:= System args at(1) asNumber 35 | SNorm App(n) asString(0,9) println 36 | -------------------------------------------------------------------------------- /samples/shootout/sumcol-output.txt: -------------------------------------------------------------------------------- 1 | 500 2 | -------------------------------------------------------------------------------- /samples/shootout/sumcol.io: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env io 2 | 3 | /* The Great Computer Language Shootout 4 | http://shootout.alioth.debian.org 5 | 6 | Contributed by Ian Osgood */ 7 | 8 | sum := 0 9 | file := File standardInput 10 | while (line := file readLine, sum = sum + line asNumber) 11 | sum println 12 | -------------------------------------------------------------------------------- /samples/speed/SpeedResults: -------------------------------------------------------------------------------- 1 | 2 | Io localAccesses := 26.73 3 | Io localSets := 10.32 4 | 5 | Io slotAccesses := 11.19 6 | Io slotSets := 4.89 7 | 8 | Io blockActivations := 3.66 9 | Io instantiations := 2.15 10 | Io cfuncActivations := 24.40 11 | Io version := 20050615 12 | // values in millions per second 13 | 14 | Python localAccesses := 23.23 15 | Python localSets := 23.25 16 | 17 | Python slotAccesses := 6.09 18 | Python slotSets := 5.89 19 | 20 | Python blockActivations := 1.59 21 | Python instantiations := 1.38 22 | Python version := "2.3.0 final 0" 23 | 24 | // values in millions per second 25 | 26 | 27 | Ruby localAccesses := 8.12 28 | Ruby localSets := 5.75 29 | 30 | Ruby slotAccesses := 3.36 31 | Ruby slotSets := 4.41 32 | 33 | Ruby blockActivations := 2.26 34 | Ruby instantiations := 1.44 35 | Ruby version := "1.6.8" 36 | // values in millions per second 37 | 38 | -------------------------------------------------------------------------------- /tools/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | # Install build dependencies 4 | RUN apt-get update && \ 5 | DEBIAN_FRONTEND=noninteractive \ 6 | apt install -y tzdata && \ 7 | apt-get install -y \ 8 | build-essential \ 9 | git \ 10 | cmake 11 | 12 | # clone latest from Io repository into src/io 13 | WORKDIR /src 14 | RUN git clone --recursive https://github.com/IoLanguage/io.git 15 | 16 | # build and install Io 17 | WORKDIR /src/io 18 | RUN mkdir build 19 | WORKDIR /src/io/build 20 | RUN cmake .. 21 | RUN make 22 | RUN make install 23 | 24 | ENTRYPOINT [ "bash" ] -------------------------------------------------------------------------------- /tools/docker/README.md: -------------------------------------------------------------------------------- 1 | ## Docker for Io Language 2 | 3 | Developed while pursuing 7 Languages in 7 Weeks. This image should provide a reusable 'environment' for development with Io. 4 | 5 | Naturally this depends on docker, so you'll need it installed before this will be useful. Afterwards, you should be able to run the two shell scripts to built and then run the container. 6 | 7 | ## Looking towards the future 8 | 9 | In Theory this image could be used as the basis for future, more useful Io containers, that you could import your own projects into. 10 | 11 | In practice it might be good to add this Image to Docker Hub, if it proves sufficiently useful, with tags to enable users to leverage specific tags. That would allow us to ease the initiation of new developers into the language. 12 | -------------------------------------------------------------------------------- /tools/docker/buildDockerIo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Assumes you've already installed docker on your system 3 | # Build script for Docker Io image 4 | docker build -t io . -------------------------------------------------------------------------------- /tools/docker/runDockerIo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Assumes you've already run 'buildDockerIo' 3 | # Run interactive Io image, with automatic teardown 4 | docker run -it --rm io -------------------------------------------------------------------------------- /tools/old/processIoCode.io: -------------------------------------------------------------------------------- 1 | doFile("processIoCodeFor.io") 2 | processIoCodeFor(".") 3 | -------------------------------------------------------------------------------- /tools/old/processIoCodeFor.io: -------------------------------------------------------------------------------- 1 | processIoCodeFor := method(path, 2 | d := Directory clone setPath(path) 3 | 4 | processed := d folderNamedCreateIfAbsent("_ioCodeProcessed") 5 | 6 | d folderNamed("_ioCode") filesWithExtension(".io") foreach(file, 7 | processed fileNamed(file name) openForUpdating truncateToSize(0) write("__noShuffling__;\n") write(file contents asMessage asString) close 8 | ) 9 | ) 10 | --------------------------------------------------------------------------------