Is ‘lazy’ the correct term for timestamp-based skipping? [closed]

(1)

  • The oldmakeutility looks at timestamps, and if the output is newer than the input, it skips (pointless, time-consuming) re-compilation of e.g. C files.
  • The same is true for many languages and compilers. “Lazy” thumbnail generation in web aplications skips those thumbs that are newer than the source image.
  • “Smart” file syncing tools do the same, looking at time stamps, to reduce transfer volume.

I used to refer to this as “lazy”. However, looking at web citations, the term “lazy” in Computer Science seems to actually mean something different: „do something as late as possible“.

  • only load that extra part when it’s necessary
  • initialize lazily, aka as late as needed
  • only evaluate that part of the equaption, when you get to it…

So is my term wrong? And what would be more correct, for all that „is-newer-based“ skip optimizations?

3

Yes, make is lazy. It’s avoiding doing work that it’s determined it doesn’t need to do.

From Wikipedia’s page on lazy evaluation (added emphasis is mine):

lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations

Re-running steps (compilers, linkers, loaders, preprocessors, or whatever) that have already determined to be suitably run is a clear “repeated evaluation.” The whole point of the Makefile is to specify dependencies and determine what constitutes necessary or superfluous evaluation.

It’s also fair to call it “incremental,” “just-in-time,” or “on-demand.” But it’s also, very much by design, lazy.

“Lazy” usually means putting things off until the last possible moment, e.g. initializing a module only when it’s actually needed, or computing only as many numbers of an infinite sequence as the user actually reads. Alternative terms are ‘just-in-time’ or ‘on-demand’.

The key concept here is that this is only a good idea if you don’t know exactly what the program will do at runtime. In practice that means that it’s appropriate for interactive systems that depend on a stream of user input. If you knew exactly that a module will always be used, you might just as well initialize it on booting, because it’s easier to code and doesn’t make the user wait later when they’re in full getting-things-done mode.

Not repeating compilations, as make does, isn’t really comparable. First, whatever you want built is definitely going to be wanted – there isn’t anything in the rule set that may or may not be necessary. Once you’ve given a target to make, you know that all preconditions will have to be satisfied. And no matter how long you wait, the source file is only going to get older, so the compilation will only get less and less necessary, so to speak.

So you don’t have interactive functions, and you know exactly what is and isn’t necessary to do (because knowing this is kind of make‘s job description. Therefore, I would say that not repeating compilations unnecessarily is just an instance of judicious caching – also a widespread practice, just a somewhat different one.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa

Is ‘lazy’ the correct term for timestamp-based skipping? [closed]

(1)

  • The oldmakeutility looks at timestamps, and if the output is newer than the input, it skips (pointless, time-consuming) re-compilation of e.g. C files.
  • The same is true for many languages and compilers. “Lazy” thumbnail generation in web aplications skips those thumbs that are newer than the source image.
  • “Smart” file syncing tools do the same, looking at time stamps, to reduce transfer volume.

I used to refer to this as “lazy”. However, looking at web citations, the term “lazy” in Computer Science seems to actually mean something different: „do something as late as possible“.

  • only load that extra part when it’s necessary
  • initialize lazily, aka as late as needed
  • only evaluate that part of the equaption, when you get to it…

So is my term wrong? And what would be more correct, for all that „is-newer-based“ skip optimizations?

3

Yes, make is lazy. It’s avoiding doing work that it’s determined it doesn’t need to do.

From Wikipedia’s page on lazy evaluation (added emphasis is mine):

lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations

Re-running steps (compilers, linkers, loaders, preprocessors, or whatever) that have already determined to be suitably run is a clear “repeated evaluation.” The whole point of the Makefile is to specify dependencies and determine what constitutes necessary or superfluous evaluation.

It’s also fair to call it “incremental,” “just-in-time,” or “on-demand.” But it’s also, very much by design, lazy.

“Lazy” usually means putting things off until the last possible moment, e.g. initializing a module only when it’s actually needed, or computing only as many numbers of an infinite sequence as the user actually reads. Alternative terms are ‘just-in-time’ or ‘on-demand’.

The key concept here is that this is only a good idea if you don’t know exactly what the program will do at runtime. In practice that means that it’s appropriate for interactive systems that depend on a stream of user input. If you knew exactly that a module will always be used, you might just as well initialize it on booting, because it’s easier to code and doesn’t make the user wait later when they’re in full getting-things-done mode.

Not repeating compilations, as make does, isn’t really comparable. First, whatever you want built is definitely going to be wanted – there isn’t anything in the rule set that may or may not be necessary. Once you’ve given a target to make, you know that all preconditions will have to be satisfied. And no matter how long you wait, the source file is only going to get older, so the compilation will only get less and less necessary, so to speak.

So you don’t have interactive functions, and you know exactly what is and isn’t necessary to do (because knowing this is kind of make‘s job description. Therefore, I would say that not repeating compilations unnecessarily is just an instance of judicious caching – also a widespread practice, just a somewhat different one.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa

Is ‘lazy’ the correct term for timestamp-based skipping? [closed]

(1)

  • The oldmakeutility looks at timestamps, and if the output is newer than the input, it skips (pointless, time-consuming) re-compilation of e.g. C files.
  • The same is true for many languages and compilers. “Lazy” thumbnail generation in web aplications skips those thumbs that are newer than the source image.
  • “Smart” file syncing tools do the same, looking at time stamps, to reduce transfer volume.

I used to refer to this as “lazy”. However, looking at web citations, the term “lazy” in Computer Science seems to actually mean something different: „do something as late as possible“.

  • only load that extra part when it’s necessary
  • initialize lazily, aka as late as needed
  • only evaluate that part of the equaption, when you get to it…

So is my term wrong? And what would be more correct, for all that „is-newer-based“ skip optimizations?

3

Yes, make is lazy. It’s avoiding doing work that it’s determined it doesn’t need to do.

From Wikipedia’s page on lazy evaluation (added emphasis is mine):

lazy evaluation, or call-by-need is an evaluation strategy which delays the evaluation of an expression until its value is needed (non-strict evaluation) and which also avoids repeated evaluations

Re-running steps (compilers, linkers, loaders, preprocessors, or whatever) that have already determined to be suitably run is a clear “repeated evaluation.” The whole point of the Makefile is to specify dependencies and determine what constitutes necessary or superfluous evaluation.

It’s also fair to call it “incremental,” “just-in-time,” or “on-demand.” But it’s also, very much by design, lazy.

“Lazy” usually means putting things off until the last possible moment, e.g. initializing a module only when it’s actually needed, or computing only as many numbers of an infinite sequence as the user actually reads. Alternative terms are ‘just-in-time’ or ‘on-demand’.

The key concept here is that this is only a good idea if you don’t know exactly what the program will do at runtime. In practice that means that it’s appropriate for interactive systems that depend on a stream of user input. If you knew exactly that a module will always be used, you might just as well initialize it on booting, because it’s easier to code and doesn’t make the user wait later when they’re in full getting-things-done mode.

Not repeating compilations, as make does, isn’t really comparable. First, whatever you want built is definitely going to be wanted – there isn’t anything in the rule set that may or may not be necessary. Once you’ve given a target to make, you know that all preconditions will have to be satisfied. And no matter how long you wait, the source file is only going to get older, so the compilation will only get less and less necessary, so to speak.

So you don’t have interactive functions, and you know exactly what is and isn’t necessary to do (because knowing this is kind of make‘s job description. Therefore, I would say that not repeating compilations unnecessarily is just an instance of judicious caching – also a widespread practice, just a somewhat different one.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật