GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - timandy/routinex: The toolexec tool of routine.

BranchesTags
Open more actions menu

Latest commit

 

History

15 Commits
15 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
docs
docs
 
 
inject
inject
 
 
tools
tools
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
CHANGELOG.md
CHANGELOG.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
README_zh.md
README_zh.md
 
 
SECURITY.md
SECURITY.md
 
 
VERSION
VERSION
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
main.go
main.go
 
 
main_test.go
main_test.go
 
 

Repository files navigation

RoutineX Compiler

Build Status Codecov Go Report Card Documentation Release License

中文版

RoutineX is a compilation tool designed to enhance the goroutine capabilities of the runtime package in Golang standard library.

As a compilation tool for the routine static mode, it supports advanced features such as native goroutine-local storage (TLS).

This enables routine in static mode to achieve higher performance and a safer memory access mechanism.

🏠Introduction

In the normal mode, routine stores the labelMap and goroutine context data in the g.labels field based on the structure layout.

This requires additional validation and judgment during reading and inheritance, which impacts performance and may not be compatible with future go versions.

To further improve performance and compatibility, the RoutineX compiler uses source code enhancement techniques to export some functions at the lower level, allowing routine to efficiently and safely access the data of the goroutine structure g.

🛠️Usage Instructions

Installation

go install -a github.com/timandy/routinex@latest

Before calling, you need to set the environment variable to append $(go env GOPATH)/bin to PATH, so that routinex can be run directly in the console.

  • windows
#!/bin/pwsh

$env:Path="$env:Path;$(go env GOPATH)\bin"
  • linux
#!/bin/bash

export PATH="$PATH:$(go env GOPATH)/bin"

Enable Debugging

Using debugging parameters can output logs from routinex.

  • --debug or -d outputs detailed logs.

  • --verbose or -v outputs brief logs.

  • windows

#!/bin/pwsh

# Set environment variable
$env:Path="$env:Path;$(go env GOPATH)\bin"
# Add parameters
go build -a -toolexec='routinex -v' -o main.exe .
  • linux
#!/bin/bash

# Set environment variable
export PATH="$PATH:$(go env GOPATH)/bin"
# Add parameters
go build -a -toolexec='routinex -v' -o main.exe .

Multiple Toolchains

If you have already used another toolchain before using routinex, take abc as an example.

Since it cannot be guaranteed that abc has chain transfer functionality, routinex should be placed before the abc toolchain.

After routinex is executed, it will automatically call the abc tool.

  • windows
#!/bin/pwsh

# Set environment variable
$env:Path="$env:Path;$(go env GOPATH)\bin"
# Add parameters
go build -a -toolexec='routinex -v abc' -o main.exe .
  • linux
#!/bin/bash

# Set environment variable
export PATH="$PATH:$(go env GOPATH)/bin"
# Add parameters
go build -a -toolexec='routinex -v abc' -o main.exe .

💡Implementation Principle

See

🚀Performance Improvement

See

📜License

RoutineXis released under the Apache License 2.0.

Copyright 2021-2025 TimAndy

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

The toolexec tool of routine.

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity

Stars

3 stars

Watchers

1 watching

Forks

1 fork
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.