下载源：
    - 列出所有下载源
    - 指定从官网下载：`jill download --upstream Official`
    - 从局域网私有源下载：创建一个类似的[配置文件](jill/config/sources.json)并存放在：
        * Linux, MacOS and FreeBSD: `~/.config/jill/sources.json`
        * Windows: `~/AppData/Local/julias/sources.json`

更多的参数及其作用请查看帮助文档: `jill [COMMAND] -h` (例如`jill install -h`)

关于Libc依赖，Julia >=1.5.0 提供了分别使用 `musl` 和 `glibc` 的二进制程序，你可以

- 安装： 依然还是正常的 `jill install`; `jill` 在这里会自动判断你是否在使用 `musl`
- 下载： 用 `--sys musl` 来下载基于`musl`的版本，以及用`--sys linux` 来下载glibc的版本


在你已经提前知道最近的镜像站的情况下， 环境变量 `JILL_UPSTREAM` 可以用来关闭 `jill` 的 “查询最近的上游” 这一功能，
从而加速整个 `jill` 的下载过程。 （不过 `jill --upstream` 的优先级更高一些）

## The Python API

`jill.py` 同时提供了一套 Python API:

```python
from jill.install import install_julia
from jill.download import download_package

# 等价于 `jill install --confirm`
install_julia(confirm=True)
# 等价于 `jill download`
download_package()
```

你可以查看文档 （例如 `?install_julia`) 来得到更多的使用信息。

## 案例 -- Cron

通过使用`cron`，`jill` 还能够保证在你的服务器上提供一个最新版本的每日构建版：

```bash
# /etc/cron.d/jill
PATH=/usr/local/bin:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin

# install a fresh nightly build every day
* 0 * * * root jill install latest --confirm
```

类似地，你也可以通过加一个 `jill install --confirm` 来保证 `julia` 永远是最新地稳定发行版。一旦有新的 Julia 版本
发布了，`jill` 就能够下载到它 -- 你甚至不需要更新`jill`。
<filename>examples/template/basic_game/src/module/core/audioLoader.js<gh_stars>100-1000
var audioLoader = {

  loading: false,  // initialize boolean to prevent duplicate preload() calls

  cache: {}, // class variable; initialize cache dictionary object

  loadingStats: { 

  	total: null, 
  	count: null, 
  	finalCallback: null 

  }, // local variable, initialize loading statistics object

  load: function (url) { // class method; callback incrementor - wait until final image is loaded before executing callback

    // console.log('audioLoader load start')

    if (audioLoader.cache[url]!== undefined) {
      audioLoader.callback_handler() ;
    } else {

      if (AudioContext) {
          // Do whatever you want using the Web Audio API
        // console.log('AudioContext', AudioContext, 'audioHelper', audioHelper)
        var audio = Object.copy(audioHelper) ; // shallow copy, maintains a single AudioContext container for all source files loaded
          //...
      } else {
          // Web Audio API is not supported
          // Alert the user
          alert("Web Audio API is not supported by your browser.");
          return undefined ;
      }

			var request = new XMLHttpRequest() ;
			request.open('get', url, true) ;
			request.responseType = 'arraybuffer' ;
			request.onload = function () {
	  			// console.log('request.response', request.response, 'audioHelper.context', audioHelper.context, 'AudioContext', AudioContext) ;
				audioHelper.context.decodeAudioData( request.response, function(buff) { 
					audio.buffer = buff ;
			    audioLoader.cache[url] = audio ;
					audioLoader.callback_handler() ;
				}) ;
			}

			request.send() ;

    }

    return audio ; // return audio object

	},

  callback_handler: function () {

    audioLoader.loadingStats.count++ ;

    if (audioLoader.loadingStats.count === audioLoader.loadingStats.total) {
      audioLoader.loadingStats.finalCallback() ; // execute the final callback
      audioLoader.loading = false ;
    }

    return ;

	},

  preload: function (audioList, callback) { // class method; cache dictionary builder

    if (audioLoader.loading) {
      return false ; // prevent duplicate calls
    }

    if (audioList.length === 0) {
      callback() ;
      return ;
    }

    audioLoader.loading = true ;
    audioLoader.loadingStats.total         = audioList.length ;
    audioLoader.loadingStats.count         = 0 ; // initialize 
    audioLoader.loadingStats.finalCallback = callback ;
    // console.log ('audio loader preload', 'audioList', audioList) ;
    audioList.forEach ( function (url) {
    	audioLoader.load(url) ;
    }) ;

    return ;

  },

} ;Tired of traditional face masks? Looking for a face covering that is breathable, lightweight and stylish? Look no further - meet Eden! Made with breathable silk and additional fabric that lays perfectly around your neck and acts as a barrier from ultraviolet light and dust. It includes elastic ear straps for the perfect fit. Eden can also be used as a neck scarf and head tie.Providing professional tax preparation, estate planning, and financial services since 1997.
In 1995, Bill formed the firm William H. Giese, Ltd which in 1997 became Tax Counsellors of Bryn Mawr. Prior to William H. Giese, Ltd, Bill spent 27 years as a tax consultant at PriceWaterhouseCoopers, the last 15 years as a tax partner. While at PriceWaterhouseCoopers, Bill's clients included corporations, partnerships, and individuals. Bill is a CPA, received his undergraduate degree with honors from Amherst College, and his MBA from the Wharton School.
Bill has a substantial amount of experience in all aspects of corporate and individual taxation and has worked on many sophisticated transactions ranging from mergers and acquisitions to estate planning. He has extensive experience in structuring transactions, and he also has wide experience in solving the problems of S corporations, partnerships, LLCs and individuals.
Ross, a CPA, was a tax consultant at PriceWaterhouseCoopers for 12 years where he dealt with corporate acquisition and operating tax issues for both public and privately held companies and all tax aspects of S corporations and partnerships. He also specialized in individual income tax planning.
After leaving PriceWaterhouseCoopers in 1986, Ross spent 10 years as a Chief Financial Officer in the private sector where he was successful in identifying and resolving financial issues inherent in companies at all stages of development. In 1996, he joined William H. Giese, Ltd, which in 1997 became Tax Counsellors of Bryn Mawr. Ross graduated from Ohio Wesleyan University and earned his MBA at the Wharton School.
David, a CPA and lawyer, was a tax partner at PriceWaterhouseCoopers for 20 years prior to his retirement in 1999. While at PriceWaterhouseCooopers, he was responsible for the Philadelphia office international tax planning group.
David has extensive experience in structuring the U.S. and foreign operations of multinational companies in order to minimize the worldwide tax burden. Detroit Lions rolled out the all-gray uniforms for their game against the Dallas Cowboys on Sunday in Arlington, Texas.
The third (or fourth, depending on who you ask) uniform for the Lions debuted last season, at home against the Bears.
The gray jer