--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/cache-olean.html ---
@Simon Hudon cache-olean
doesn't seem to be working for me. I am on branch lean-3.4.2
, I fetched and merged the latest version, and did this:
avigad@avigad-ThinkPad-T460:~/projects/mathlib$ cache-olean --fetch No github section found in 'git config' Querying GitHub... Downloading nightly... ... successfully extracted olean archive. avigad@avigad-ThinkPad-T460:~/projects/mathlib$ lean --make
It is recompiling the whole library. That shouldn't happen, should it? Can you tell if I am doing something wrong?
That certainly shouldn't happen
what if you do cache-olean --fetch
and leanpkg build
instead?
@Simon Hudon I just want to give you a very big Thank You :trademark:. Using update-mathlib
and cache-olean
has made development so much smoother. It is so much easier to switch branches, and add quick contributions. Kudos!
I'm really glad it helps :)
What is cache-olean
? How do I find out how to use it?
It looks like it's documented here: https://github.com/leanprover-community/mathlib/blob/master/docs/howto-contribute.md#caching-compilation
I get this error
dyn894-237:mathlib chrishughes$ cache-olean --fetch Info: No github section found in 'git config', we will use GitHub with no authentication Querying GitHub... Error: no nightly archive found no cache found
Did you cache a build?
How do I do that?
I was on the master
branch
If you want to use the nightly, switch to the head of lean-3.4.2
And it works for my community branches right? How do I do that?
lean-3.4.2
works by the way. Thanks.
For your branches, you build it first, then you call cache-olean
and it will cache your build. When you switch to another branch and then come back, git will restore your binaries and you can pick up where you left off
@Chris Hughes When we switch over to the archives on Scott's server you will have "nightlies" for every commit of every branch. Scott is polling github every minute, and then he just needs to compile. If I understand the setup correctly...
It is still not connected to Scott's server
I tried using cache-olean
, and it works for me. However, I'm on a Windows computer and configured git with autocrlf = true
, so that my line endings are CRLF locally (that was what I was advised when I started using git). Running cache-olean
changes all my line-endings to LF, and after doing git checkout -- .
I think that Lean will try to rebuild the whole library from scratch.
Should I just burn down my whole git repository to the ground and reclone it using autocrlf = false
or is there a simpler workaround? (I don't think that any of the programs I use care whether the line endings are CRLF or LF.)
I remember seeing a commit that does what you describe but I can't seem to find it. I think @Scott Morrison helped with this.
Does @Gabriel Ebner's fix to lean 3.4.2 here apply to this problem or not?
It looks like it would. @Floris van Doorn can you confirm that it actually causes you to recompile?
It did. The following finishes in a couple of seconds:
git checkout blessed/lean-3.4.2 cache-olean --fetch leanpkg build
The following ran for a couple of minutes until I killed it:
git checkout blessed/lean-3.4.2 cache-olean --fetch git status git checkout -- . leanpkg build
I did change my autocrlf
setting to false, and that works well.
I'm finally getting around to setting up cache-olean
. After moving scripts to their own repo, the install directions need to be updated, but that's easy enough. More worrying, I got this trace checking out a branch. Any idea what's up here?
Trying to fetch cached olean Querying remote Mathlib cache... Error: revision not found Info: No github section found in 'git config', we will use GitHub with no authentication Querying GitHub... Downloading nightly... Traceback (most recent call last): File "/home/rob/.mathlib/bin/cache-olean", line 145, in <module> fetch_mathlib(asset) File "/home/rob/.mathlib/bin/cache-olean", line 104, in fetch_mathlib f.write(req.data) TypeError: __exit__() takes 1 positional argument but 4 were given
As for updating the docs. Perhaps setup_dev_scripts.sh
should be moved back to mathlib, and should check mathlib-scripts on Github for the scripts it needs to download?
It's curious. The line info in this error is not consistent with the version in mathlib-tools
. Are you sure you have a recent version?
I'm not at the office anymore so I can't check until Monday, but I think so... I had a fresh checkout of mathlib-tools
for moving your PR over from mathlib.
Maybe not though. I'll check next week.
Ok, please keep me posted.
Lately, whenever I run cache-olean --fetch
I get an error that no nightly archive is found. This happens when I am on the master branch of mathlib-community (and also if I'm a couple commits behind master - is there a delay in the availability of binaries?).
Floris@MSI MINGW64 /d/projects/mathlib (master) $ cache-olean --fetch Info: No github section found in 'git config', we will use GitHub with no authentication Querying GitHub... Error: no nightly archive found no cache found
Oh wait, I forgot you had to be on the lean-3.4.2
branch. Is this what https://github.com/leanprover-community/mathlib-tools/pull/2 is implementing?
I forgot you had to be on the lean-3.4.2 branch
That's right
Is this what https://github.com/leanprover-community/mathlib-tools/pull/2 is implementing?
That's a project that Scott and I are working on so that you can get a binary for every commit. It's not there yet.
@Simon Hudon @Scott Morrison Any progress here?
mathlib is moving ever so slightly faster. I'm finding that if one works on a bunch of related PRs, then it's really nice to be able to work on master
instead of yesterdays lean-3.4.2
. Are there any options on the horizon of publishing binaries for every commit of the last 3 days (say) and only storing 1 set of binaries per day for older versions of master?
I have not looked into it. I think that's possible but you need every build of master to do a deployment. You can look in the travis file and in scripts/deploy-nightly.sh
. scripts/deploy-nightly.sh
should be changed a bit so that it does not push to lean-3.4.2
when deploying the build. As for deleting old releases, I'm not sure how to do that. We can try with a cron job on travis.
Another approach would be to look into Github actions. It might be easier to configure
Are there more people who think it would be useful to increase the frequency of binary releases? If it's just me, I don't think we should spend energy on this change.
So, thumbs up on this message, if you would like to have binary releases for every commit on master for the last 3 days. And thumbs down if you don't want/need that.
I even wish PRs buils would be available so that I have at least access to tactic state when reviewing complicated PRs.
Github actions supports attaching downloadable "artifacts" to every build (on every branch), so all this is possible. Probably that can be integrated into the cache-olean script in a clever way too.
Are there statistics on the average number of commits to the github repo per day? (So not master, but all branches.)
have a look at https://github.com/leanprover-community/mathlib/graphs/commit-activity
But that is commits to master, I guess
Right, then I don't know how to do better
I would be happier with builds on PR commits (as Patrick mentions) than more frequent master builds.
.olean
files that were succesfully produced) will be very useful: to build on top of the PR before it has been merged, to review in VSCode, and for failing builds: to fix build failures more easily.I think instead of going in the direction of picking the right commits to cache the build of, I think getting sccache to support Lean might do a better job. What it does is every time you try to compile one file it checks if this exact file (with its exact contents and the exact content of its dependencies) has been compiled by any other user in the past.
Github actions supports attaching downloadable "artifacts" to every build (on every branch), so all this is possible. Probably that can be integrated into the cache-olean script in a clever way too.
I wonder how long they're stored, how predictable the URLs are, and if there's a cap on the artifact size. If those all have reasonable answers, I think this is a great reason to switch.
Also I've been getting annoyed with the random Travis failures because a PR happened to be merged during the build.
I don't know the first thing about sccache, that sounds reasonable too.
But there are independent reasons to switch to GitHub Actions for CI, so if it will let us cache oleans for all PRs without much effort, let's go for it.
I wonder how long they're stored, how predictable the URLs are, and if there's a cap on the artifact size.
According to the page it looks like they're stored for 90 days, which is probably OK for PR's and non-cron master commits. For really old PRs, we would probably want to do a merge commit with master anyways, and that would trigger a new build.
Not sure about the URLs, but I did see this:
GitHub does not currently offer a REST API to retrieve uploaded artifacts.
So, this might be tricky.
I couldn't find any info about size caps, so my guess is that we'd be fine.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


ssm
Main Page
Classes
Files
Class List
Class Index
Class Hierarchy
Class Members
Class Hierarchy
Go to the textual class hierarchy
Generated by
1.8.11


Computes an Euclidean Minimum Spanning Tree using the Dual-Tree Boruvka algorithm (March, Ram, Gray, 2010, <doi:10.1145/1835804.1835882>) implemented in 'mlpack' - the C++ Machine Learning library (Curtin, 2005, <doi:10.21105/joss.00726>). 'emstreeR' works as a wrapper so that R users can benefit from the fast C++ function for computing an Euclidean Minimum Spanning Tree without touching the C++ code. The package also provides functions and an S3 method for readily plotting the Minimum Spanning Trees (MST) using either 'base' R, 'scatterplot3d' or 'ggplot2' style.
| Version: | 2.1.0 |
| Depends: | R (≥ 3.5.0) |
| Imports: | Rcpp (≥ 0.12.18), RcppMLPACK, scatterplot3d, ggplot2, BBmisc |
| LinkingTo: | Rcpp, RcppMLPACK, RcppArmadillo, BH |
| Published: | 2018-12-06 |
| Author: | Allan Quadros [aut, cre], Andre Cancado [aut], Pedro Brom [aut], Eduardo Hellas [aut] |
| Maintainer: | Allan Quadros <allanvcq at gmail.com> |
| BugReports: | https://github.com/allanvc/emstreeR/issues |
| License: | BSD_3_clause + file LICENSE |
| NeedsCompilation: | yes |
| Materials: | README NEWS |
| CRAN checks: | emstreeR results |
| Reference manual: | emstreeR.pdf |
| Package source: | emstreeR_2.1.0.tar.gz |
| Windows binaries: | r-devel: emstreeR_2.1.0.zip, r-release: emstreeR_2.1.0.zip, r-oldrel: not available |
| OS X binaries: | r-release: emstreeR_2.1.0.tgz, r-oldrel: not available |
| Old sources: | emstreeR archive |
Please use the canonical form https://CRAN.R-project.org/package=emstreeR to link to this page.


Creates a TCP transport that will listen on or connect to a port and host.
The serializer to use for encoding/decoding messages.
The port to listen on or connect to.
The host to listen on or connect to.
Creates a TCP transport that will listen on a port on all interfaces, or connect to a port on localhost.
The serializer to use for encoding/decoding messages.
The port to listen on or connect to.
Creates a TCP transport that will listen on or connect to an IPC Path.
The serializer to use for encoding/decoding messages.
The IPC Path to listen on or connect to.
Creates a TCP transport that will use an existing net.Server.
The serializer to use for encoding/decoding messages.
The net.Server to listen on.
The connection to the server.
A map of clients and their IDs.
The host to listen on or connect to.
The IPC Path the client will connect to or server will listen on.
The port the client will to connect to or server will listen on.
Amount of time to wait between attempting to reconnect.
The net.Server instance.
Adds a connection to the map of connections.
The connection to the server.
A globally unqiue identifier for the connection which will be used across the server (across multiple transports). Defaults to a UUID v4.
Closes the TCP connection.
Connects to the server using the provided details.
Disables reconnection upon disconnect.
Begins listening for connections using the TCP Server. If a server was passed in the constructor, this function does nothing.
This method is called when the server has sent a message to a client and vice versa.
The serialized message as either binary or text.
Contains data on the inbound request, including the client's ID.
Reconnects to the server.
Removes a connection from the map of connections.
ID of the connection.
Sends a message to the server, connecting to the server if a connection has not been made.
Message to send.
Sends a message via the provided connection.
The connection to use.
Message to send.
Sends a message to a client by its ID.
ID of the client.
Message to send.
Generates a unique id that can be used to distinguish between connected clients. The unique id will be a UUID v4 returned as a Uint8Array.
Generated using TypeDoc
A transport uses TCP as its protocol. This transport will not work in the browser.


Jslet - Customized Column Render
Employee List
Demo Content:
Display photo of employee in table column.


Menu
About US
(current)
Contact US
Services
Air Port Services
Wedding
Corporate Services
Separated link
One more separated link
Woodhaven Limousine
New York Leading Transportation Services
Speedy Fast Booking
Call US
Luxury and affordable
Top Rated Limo Company
Experienced & certified drives
We want our customer happy
Subscribe for Discount coupans
Name
Email
Subscribe


Sat, 6 May 2017 , 6:30PM
Creative Summer Program is here for a fun
FunRs 350
Sat, 20 Mar 2017 10:00AM
CampRs 1550


toString()
method of a class.
This inspection can help discover the
fields that were added after the toString()
method was created and for which the toString()
method was not
updated. The quick-fix regenerates the toString()
method.
In the Generate | toString() dialog, it is possible to exclude fields from this check. This inspection will also check for problems with getter methods if the Enable getters in code generation option is enabled there.
Example:
public class Relevant {
private String name; // not used in toString()
private int index;
private int length;
@Override
public String toString() {
return "Relevant{" + "index=" + index +
", length=" + length + '}';
}
}
After the quick-fix is applied:
public class Relevant {
private String name;
private int index;
private int length;
@Override
public String toString() {
return "Relevant{" + "name='" + name + '\'' +
", index=" + index + ", length=" + length + '}';
}
}


S
~ SETTLERS OF ASIA ~
Welcome, Jack!

Game type
Heading For New Shores
Heading For New Shores
Create Match
Choose a saved game (* indicates match owner):
{{room.displayName}}


Hi,
I'am Vivek
Web Designer
Contact me
About
I'am Vivek
An enthusiastic Computer science fresher who is a self-starter and capable to use technical skills for the betterment of the organization. A Bachelor's degree in Computer Science has enhanced my proficiency in developing web applications and looking forward to work in a competitive environment that enhances overall learning.


This online documentation represents the JARGON design plans for the future. Not all methods documented here are available in the current release of JARGON. Please see the documentation available with the JARGON release for a list of current functions of the API.


|
|
| OmWebServer (int port=80) |
| |
|
void | setVerbose (int verbose) |
| | OmWebServer by default prints much status to serial; set to 0 to cut that out.
|
| |
| void | setAccessPoint (String ssid, String password, int secondsUntilReboot=0) |
| |
|
void | addWifi (String ssid, String password) |
| | add to the list of known networks to try.
|
| |
| void | clearWifis () |
| | reset the list of known networks to try, to empty again. More...
|
| |
|
void | setBonjourName (String bonjourName) |
| | advertises on local network as bonjourName.local
|
| |
|
String | getBonjourName () |
| | get the current bonjour name
|
| |
|
void | setHandler (OmRequestHandler requestHandler) |
| |
|
void | setHandler (OmWebPages &requestHandler) |
| | Introduce an OmWebPages to the server, done and done!
|
| |
|
void | setStatusCallback (OmConnectionStatus statusCallback) |
| | receive notifications of changes to wifi status
|
| |
|
void | setNtp (OmNtp *ntp) |
| | Introduce an NTP object to the server.
|
| |
|
void | setPort (int port) |
| | defaults to 80
|
| |
|
void | setStatusLedPin (int statusLedPin) |
| | changes or disables the blinking status LED. Use -1 to disable.
|
| |
|
void | end () |
| |
|
void | glitch (int k) |
| | simulate a network trouble. 1==disconnect the wifi
|
| |
| int | tick () |
| | You must call this in loop() to give time to run. This allows networks to be joined and rejoined, and is when requests are served. Call it often! return the number of requests handled, if any. More...
|
| |
|
const char * | getSsid () |
| |
|
int | getPort () |
| |
|
uint32_t | getIp () |
| |
|
int | getClientPort () |
| |
|
unsigned int | getTicks () |
| |
|
bool | isWifiConnected () |
| | is it?
|
| |
|
long long | uptimeMillis () |
| | arduino's millis() will overflow after 50 days. Not this baby.
|
| |
| bool | put (uint8_t) override |
| | emit a single byte, overridden by any implementation More...
|
| |
| bool | done () override |
| |
|
bool | put (const char *s) |
| |
|
bool | put (uint8_t *d, int size) |
| |
| virtual bool | put (uint8_t ch) |
| | emit a single byte, overridden by any implementation More...
|
| |
|
virtual bool | done () |
| |
|
virtual bool | putS (const char *s) |
| | convenience routine, same as put byte-by-byte.
|
| |
| void OmWebServer::setAccessPoint |
( |
String |
ssid, |
|
|
String |
password, |
|
|
int |
secondsUntilReboot = 0 |
|
) |
| |
must be set before begin(), and cannot be revoked. Creates a wifi network access point with the name shown. You'll have to communicate the IP address to the user by your own means, on screen display or something. set "" for no access point. NOTE: 2019-12-14 works sometimes. I dont highly recommend. :( NOTE:2021-06-12 works pretty well now... if you provide a secondsUntilReboot, it will only stay in AP mode that long before rebooting and going through your startup perhaps with other SSIDs again. This, so after a power failure and reboot, if you only use AP for config, it can find its way home. Eventually. NOTE:2021-07-11 if you pass in setAccessPoint("", "", 0) it will clear the secondsUntilReboot and stay in AP mode indefinitely. So you could add a control to disable the timeout in a remote-use setting.


The HTML <meta> element is used to provide meta information about your HTML document – typically keywords, document character set, caching pragmas, etc. Meta tags may be either of the ‘http-equiv’ or ‘name’ types, must contain a ‘content’ attribute, and can also have either of the ‘lang’ or ‘scheme’ modifier attributes.
The HeadMeta helper supports the following methods for setting and adding meta tags:
The following methods are also supported with XHTML1_RDFA doctype set with the Doctype helper:
The $keyValue item is used to define a value for the ‘name’ or ‘http-equiv’ key; $content is the value for the ‘content’ key, and $modifiers is an optional associative array that can contain keys for ‘lang’ and/or ‘scheme’.
You may also set meta tags using the headMeta() helper method, which has the following signature: headMeta($content, $keyValue, $keyType = 'name', $modifiers = array(), $placement = 'APPEND'). $keyValue is the content for the key specified in $keyType, which should be either ‘name’ or ‘http-equiv’. $keyType may also be specified as ‘property’ if the doctype has been set to XHTML1_RDFA. $placement can be ‘SET’ (overwrites all previously stored values), ‘APPEND’ (added to end of stack), or ‘PREPEND’ (added to top of stack).
HeadMeta overrides each of append(), offsetSet(), prepend(), and set() to enforce usage of the special methods as listed above. Internally, it stores each item as a stdClass token, which it later serializes using the itemToString() method. This allows you to perform checks on the items in the stack, and optionally modify these items by simply modifying the object returned.
The HeadMeta helper is a concrete implementation of the Placeholder helper.
You may specify a new meta tag at any time. Typically, you will specify client-side caching rules or SEO keywords.
For instance, if you wish to specify SEO keywords, you’d be creating a meta name tag with the name ‘keywords’ and the content the keywords you wish to associate with your page:
1 2 | // setting meta keywords
$this->headMeta()->appendName('keywords', 'framework, PHP, productivity');
|
If you wished to set some client-side caching rules, you’d set http-equiv tags with the rules you wish to enforce:
1 2 3 4 5 | // disabling client-side cache
$this->headMeta()->appendHttpEquiv('expires',
'Wed, 26 Feb 1997 08:21:57 GMT')
->appendHttpEquiv('pragma', 'no-cache')
->appendHttpEquiv('Cache-Control', 'no-cache');
|
Another popular use for meta tags is setting the content type, character set, and language:
1 2 3 4 | // setting content type and character set
$this->headMeta()->appendHttpEquiv('Content-Type',
'text/html; charset=UTF-8')
->appendHttpEquiv('Content-Language', 'en-US');
|
If you are serving an HTML5 document, you should provide the character set like this:
1 2 | // setting character set in HTML5
$this->headMeta()->setCharset('UTF-8'); // Will look like <meta charset="UTF-8">
|
As a final example, an easy way to display a transitional message before a redirect is using a “meta refresh”:
1 2 3 | // setting a meta refresh for 3 seconds to a new url:
$this->headMeta()->appendHttpEquiv('Refresh',
'3;URL=http://www.some.org/some.html');
|
When you’re ready to place your meta tags in the layout, simply echo the helper:
1 | <?php echo $this->headMeta() ?>
|
Enabling the RDFa doctype with the Doctype helper enables the use of the ‘property’ attribute (in addition to the standard ‘name’ and ‘http-equiv’) with HeadMeta. This is commonly used with the Facebook Open Graph Protocol.
For instance, you may specify an open graph page title and type as follows:
1 2 3 4 5 6 7 8 | $this->doctype(Zend\View\Helper\Doctype::XHTML_RDFA);
$this->headMeta()->setProperty('og:title', 'my article title');
$this->headMeta()->setProperty('og:type', 'article');
echo $this->headMeta();
// output is:
// <meta property="og:title" content="my article title" />
// <meta property="og:type" content="article" />
|
The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.


Manchester City Club
Manchester City Football Club is an English football club based in Manchester that competes in the Premier League, the top flight of English football. Founded in 1880 as St. Mark's (West Gorton), it became Ardwick Association Football Club in 1887 and Manchester City in 1894. The club's home ground is the Etihad Stadium in east Manchester, to which it moved in 2003, having played at Maine Road since 1923. The club adopted their sky blue home shirts in 1894 in the first season of the club's current iteration, that have been used ever since
Chelsea FC
Chelsea Football Club is an English professional football club based in Fulham, London. Founded in 1905, the club competes in the Premier League, the top division of English football. Chelsea are among England's most successful clubs, having won over thirty competitive honours, including six league titles and six European trophies. Their home ground is Stamford Bridge
The Journey of Predictions to determine which team will win in Champions League
What are the Bookies Saying? Manchester City are favorites to win the UCL according to many bookies. They have odds of +190 to win the tournament, much higher than the second closest contender, Chelsea (+425). PSG kick come third with odds of +450 while Real Madrid are at a distant fourth with odds of +500. Can Man City win the UCL for the first time ever? The Pep Guardiola-led men have had a problem of exiting at the semi finals over the years. Domestically, Man City have always been a top-performing team. And this year nothing is different. What are the Polls Saying? The UCL is in its knockout stages. That means millions of fans around the world are already speculating teams to win the competition. In an ongoing poll by UEFA, Man City leads the race with 68% of football fans tipping them to win the title. 1—Manchester City Pep Guardiola is hopeful Manchester City will one day break their UCL semifinals’ curse. Will this be the year City does it? The former EPL winners have spent over €800 million to buy players in the last eight years. And every year, the Citizens get knocked out of the competition before reaching the finals. Despite that, bookmakers are confident Pep Guardiola could lead City to the UCL finals this year. Unlike chelsea, City doesn’t have an injury concern. Many of Guardiola’s men are fit. there’s a decent chance City will be heading to the finals. Truth be told, City could also win the UCL competition. 2—Chelsea Club In the history of the UCL, many winning teams are usually the defending champions in their domestic leagues. If they are not defending league titles, they rank in the top four sports. Chelsea rank fifth in the EPL, and conceded five goals to 19th placed West Brom Albion. What are the odds the blues can defeat high flying Man City, Real Madrid or PSG to win the second UCL title in history?It depends on how they performed in the final. Everyone expects them to play a tough match in order to determine their fate.


Invested Dividents
9M
Grow Rate:
14.1%
Capital Gains
$563
Increased by
7.35%
-
Total Orders
Last year expenses
-
Clients
Total Clients Profit
-
Followers
People Interested
-
Products Sold
Total revenue streams
-
Total Orders
Last year expenses
-
Clients
Total Clients Profit


Home
Platforms
Publishers
Genres
Games
Explore games, platforms, publishers and genres
Filter
Filter
Note - within groups:
or
; Between groups:
and
.
Top 500 games by global sales ranking
Game
Sales (mi)
Publisher
Platform
Genre
Year


It seems we can’t find what you’re looking for. Perhaps searching can help.
It seems we can’t find what you’re looking for. Perhaps searching can help.
By continuing to use the site, you agree to the use of cookies. more information
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.


Front-End Developer and UX/UI designer, with practical experience in project management, branding strategy, and creative direction; devoted to functional programming and information architecture.
Web Developer - User Experience Designer - Graphic Artist
Want to get in touch with me? Be it to request more info about myself or my experience, to ask for my resume, tips on how to solve your sudoku, random questions about the universe and the meaning of life, or even if only for some nice Fika here in stunning Toronto... just feel free to drop me a line anytime.
-
I promise to reply A.S.A.P.
Note: No spam/soliciting pour moi, merci!