Compare commits

...

18 Commits

Author SHA1 Message Date
360e2b7ba6 0.7.4 2016-12-22 21:14:29 -08:00
f255e1a903 Bump pxt-core to 0.7.8 2016-12-22 21:14:27 -08:00
d4762cc5b5 deploy 0.7.3 to web 2016-12-22 10:05:52 +01:00
749b5266cb 0.7.3 2016-12-20 16:30:40 -08:00
bbd23f6d26 Bump pxt-core to 0.7.5 2016-12-20 16:30:38 -08:00
4bef7d50bd 0.7.2 2016-12-16 15:01:13 -08:00
bf423ca037 Bump pxt-core to 0.6.4 2016-12-16 15:01:05 -08:00
7556796eb6 merging more memory fixes 2016-12-16 14:57:16 -08:00
0a380a70d1 0.7.1 2016-12-16 07:26:11 -08:00
5c57e0faa4 fixing ver issues 2016-12-16 07:26:01 -08:00
41abeb62c3 0.6.2 2016-12-16 07:25:07 -08:00
b6eeeef4d5 0.6.1 2016-12-16 07:24:44 -08:00
b5b7edb978 moved to 0.6 2016-12-16 07:24:36 -08:00
a65fe1343c 0.5.98 2016-12-16 07:23:54 -08:00
3165fb3749 Bump pxt-core to 0.6.2 2016-12-16 07:23:48 -08:00
2789887f3b 0.5.97 2016-12-09 15:02:44 -08:00
d230fdd2fb Bump pxt-core to 0.5.99 2016-12-09 15:02:40 -08:00
88c9ef5b22 deploy feature now implemented in PXT 2016-12-08 21:11:50 -08:00
5 changed files with 20 additions and 74 deletions

View File

@ -1,60 +0,0 @@
/// <reference path="../node_modules/pxt-core/typings/node/node.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxtlib.d.ts" />
import * as fs from "fs";
import * as path from "path";
import * as child_process from "child_process";
let writeFileAsync: any = Promise.promisify(fs.writeFile)
let execAsync: (cmd: string, options?: { cwd?: string }) => Promise<Buffer> = Promise.promisify(child_process.exec)
let readDirAsync = Promise.promisify(fs.readdir)
export function deployCoreAsync(res: ts.pxtc.CompileResult) {
return getBitDrivesAsync()
.then(drives => {
if (drives.length == 0) {
console.log("cannot find any drives to deploy to");
return Promise.resolve(0);
}
console.log(`copy ${ts.pxtc.BINARY_HEX} to ` + drives.join(", "));
let writeHexFile = (filename: string) => {
return writeFileAsync(filename + ts.pxtc.BINARY_HEX, res.outfiles[ts.pxtc.BINARY_HEX])
.then(() => console.log("wrote hex file to " + filename));
};
return Promise.map(drives, d => writeHexFile(d))
.then(() => drives.length);
});
}
function getBitDrivesAsync(): Promise<string[]> {
if (process.platform == "win32") {
const rx = new RegExp("^([A-Z]:).* " + pxt.appTarget.compile.deployDrives)
return execAsync("wmic PATH Win32_LogicalDisk get DeviceID, VolumeName, FileSystem")
.then(buf => {
let res: string[] = []
buf.toString("utf8").split(/\n/).forEach(ln => {
let m = rx.exec(ln)
if (m) {
res.push(m[1] + "/")
}
})
return res
})
}
else if (process.platform == "darwin") {
const rx = new RegExp(pxt.appTarget.compile.deployDrives)
return readDirAsync("/Volumes")
.then(lst => lst.filter(s => rx.test(s)).map(s => "/Volumes/" + s + "/"))
} else if (process.platform == "linux") {
const rx = new RegExp(pxt.appTarget.compile.deployDrives)
const user = process.env["USER"]
return readDirAsync(`/media/${user}`)
.then(lst => lst.filter(s => rx.test(s)).map(s => `/media/${user}/${s}/`))
} else {
return Promise.resolve([])
}
}

View File

@ -1,3 +1,6 @@
/// <reference path="../node_modules/pxt-core/typings/node/node.d.ts"/>
/// <reference path="../node_modules/pxt-core/built/pxtlib.d.ts" />
import * as path from "path";
export let pxtCore = require("pxt-core");
// require.resolve() gives path to [pxt dir]/built/pxt.js, so move up twice to get pxt root dir

View File

@ -1,3 +1,3 @@
{
"appref": "v0.5.89"
"appref": "v0.7.3"
}

View File

@ -79,7 +79,7 @@ namespace pxt {
intcheck(vtable->methods[0] == &RefRecord_destroy, ERR_SIZE, 3);
intcheck(vtable->methods[1] == &RefRecord_print, ERR_SIZE, 4);
void *ptr = ::operator new(vtable->numbytes);
RefRecord *r = new (ptr) RefRecord(PXT_VTABLE_TO_INT(vtable));
memset(r->fields, 0, vtable->numbytes - sizeof(RefRecord));
@ -117,7 +117,6 @@ namespace pxt {
void RefObject::destroy() {
((RefObjectMethod)getVTable()->methods[0])(this);
delete this;
}
void RefObject::print() {
@ -245,6 +244,7 @@ namespace pxt {
this->data[i] = 0;
}
this->data.resize(0);
delete this;
}
void RefCollection::print()
@ -278,6 +278,7 @@ namespace pxt {
void RefLocal::destroy()
{
delete this;
}
PXT_VTABLE_CTOR(RefLocal) {
@ -296,6 +297,7 @@ namespace pxt {
void RefRefLocal::destroy()
{
decr(v);
delete this;
}
PXT_VTABLE_BEGIN(RefMap, 0, RefMapMarker)
@ -310,6 +312,7 @@ namespace pxt {
data[i].val = 0;
}
data.resize(0);
delete this;
}
int RefMap::findIdx(uint32_t key) {
@ -334,7 +337,7 @@ namespace pxt {
for(std::set<RefObject*>::iterator itr = allptrs.begin();itr!=allptrs.end();itr++)
{
(*itr)->print();
}
}
printf("\n");
}
#else
@ -347,16 +350,16 @@ namespace pxt {
// ---------------------------------------------------------------------------
map<pair<int, int>, Action> handlersMap;
MicroBitEvent lastEvent;
// We have the invariant that if [dispatchEvent] is registered against the DAL
// for a given event, then [handlersMap] contains a valid entry for that
// event.
void dispatchEvent(MicroBitEvent e) {
lastEvent = e;
Action curr = handlersMap[{ e.source, e.value }];
if (curr)
runAction1(curr, e.value);
@ -389,7 +392,7 @@ namespace pxt {
create_fiber((void(*)(void*))runAction0, (void*)a, fiberDone);
}
}
void error(ERROR code, int subcode)
{
@ -441,10 +444,10 @@ namespace pxt {
// unique group for radio based on source hash
// ::touch_develop::micro_bit::radioDefaultGroup = programHash();
// repeat error 4 times and restart as needed
microbit_panic_timeout(4);
int32_t ver = *pc++;
checkStr(ver == 0x4209, ":( Bad runtime version");
@ -473,6 +476,6 @@ namespace pxt {
{
exec_binary((int32_t*)functionsAndBytecode);
}
}
}
// vim: ts=2 sw=2 expandtab
// vim: ts=2 sw=2 expandtab

View File

@ -1,6 +1,6 @@
{
"name": "pxt-calliope",
"version": "0.5.96",
"version": "0.7.4",
"description": "calliope target for PXT",
"keywords": [
"JavaScript",
@ -34,6 +34,6 @@
"semantic-ui-less": "^2.2.4"
},
"dependencies": {
"pxt-core": "0.5.96"
"pxt-core": "0.7.8"
}
}