Paul Bone

Results 135 issues of Paul Bone

Warn when someone creates a type that will always have infinite values, maybe modulo lazy or extensible types. ` type Foo = Foo ( f : Foo ) ` Can...

type: enhancement
component: types
skill: mercury
component: compiler
meta: triaged
status: accepted

If a programmer declares variables and then assigns them in the same scope: var a ... a = ... The compiler should give a warning that this code could be...

type: bug
skill: mercury
component: compiler
meta: triaged
status: accepted

``` func string_to_int(s : String) -> Int { func loop(pos : StringPos, num : Int) -> Int { var maybe_cp = strpos_next(pos) match (maybe_cp) { None -> { // End...

type: bug
component: types
skill: mercury
component: compiler
meta: triaged
status: accepted
meta: aoc2021

Moving a module's file but keeping its filename can confuse plzbuild which does not detect the change and rebuild the ninja scripts: ```` $ git mv Lib.p lib.p $ plzbuild...

type: bug
skill: mercury
meta: triaged
status: accepted
component: build
meta: aoc2021

Logging statements are an escape hatch for the resource system. They allow someone to use a resource in a non-resource using function. Logging is the standard example, this feature would...

type: enhancement
skill: mercury
component: compiler
meta: triaged
status: accepted
component: language
meta: aoc2021

Currently users must specify each required library on the command line with `-l`. It'd be nice if this could be automated, including search paths. Maybe #144 should do it while...

type: enhancement
skill: mercury
component: runtime
meta: triaged
status: blocked
component: build

Add a hash-bang to PZ file format so that bytecode files can be executed without users typing `plzrun`. Or generate a script when building programs that does this - this...

type: enhancement
skill: C++
skill: mercury
component: pz
meta: triaged
status: accepted

type: enhancement
skill: mercury
meta: triaged
status: blocked
component: build

This is a bit different, and easier than #123

type: enhancement
skill: mercury
component: compiler
meta: triaged
status: accepted

Some builtins like `setenv` are likely to change / they were only introduced for testing. Maybe we should put them in some kind of `BuiltinTesting` namespace.

type: enhancement
skill: mercury
component: docs
component: compiler
meta: triaged
status: blocked
component: library