
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
The library is intended to be used with @mfjs/compiler. It closes up the circle of effects encoding. It is well known many monadic effects may be encoded using delimited continuation, details are in Andrzej Filinski from 1994. There is also backward encoding namely, given in another paper. This library implements interface from that paper.
So from time to time some people even wonder if functional programming matters at all. It is enough if runtime system supports delimited continuation to embed pretty all effects embeddable with mfjs transpiler, but without any preprocessor. Well, I’m pretty sure browsers will never implement runtime support for delimited continuations, as there is still no even tail calls optimization. However there is one other thing. Monadic structure provides more information for analyzing and generating more effective code. There is some elaboration about this in `@mfjs/compiler’ docs.
There is a CC.makeMonad function, taking bind, pure functions and predicate
for checking if the value is monadic and returning. The function returns a
fully compatible monad definition implemented on top of delimited continuation monad.
This seem to be an overhead, converting to CC interface and after converting to monad
interface, but, for some monads, like Rx.Observable this is still faster for parts
of code without effects.
For example:
var
M = require('@mfjs/core'),
CC = require('@mfjs/cc'),
RxM = CC.makeMonad(
Rx.Observable.prototype.flatMapLatest,
Rx.Observable.return,
Rx.Observable.isObservable
);
M.profile('defaultFull');
function f1() {
var k = Rx.Observable.from([1,2,3,4]);
var l = Rx.Observable.from([10,20,30,40]);
return k + l;
}
$ npm install --save-dev @mfjs/compiler
$ npm install --save @mfjs/core @mfjs/cc
$ mfjsc input.js --output=out
# or for browser
$ browserify -t @mfjsc/compiler/monadify input.js -o index.js
Copyright © 2016 Vitaliy Akimov
Distributed under the terms of the The MIT License (MIT).
FAQs
delimited continuations
We found that @mfjs/cc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.