2017-10-06 Rholang Specification Meeting notes

Date

Attendees

Goals

  • Review the Rholang Specification.
  • What are the plans for evolving the specification
  • Template discussion, didn't get any docs as follow up.

Discussion items

TimeItemWhoNotes
Review the specification
  • Specification is in flight.  Rholang spec 0.1 - that document has to be updated.  There are 2 features sets that have to be added. 
  • 1 - Def - public and private
    • Annotations on the def
  • The data structure discussion
  • The symantics need to be updated to reflected to include those and be more detailed to include the compilation strategy.
  • Former user (Deleted) - you Mike and I had a discussion, did we get to consesus?  Lucius Meredith - I felt that we did.  If we dont have consensus, we shoudl continue discussions.  Michael Stay (Unlicensed) - I felt that we agreed in pricinciple, but not in how it was actually going to work.  Was it going to be more like OOO or other?
  Plans for evolving the specification Michael Stay (Unlicensed)
  •  Michael Stay (Unlicensed): community involvement is very important.  This gets people using the language, and provides feedback on how the language needs to evolve.
  • Lucius Meredith: Community involvement is indeed very important.  

Who are the programmers Michael Stay (Unlicensed)
  • Who are the programmers that are going to be using Rholang?  Who are we targeting? Haskel engineers?  Or do we want to target the vast number of programmers using OOP and imperative programming
  • Lucius Meredith - I want to go after the youngest programmers.  Use the Dr. Seuss strategy.  The ones watching live coding TV, Twitch TV.  The youngest possible set of programmers.  Then after that it will be self-selection.  It's whoever feels attracted. 
    • I want to get Rholang in the browser as soon as possible after Mercury.  
  • Michael Stay (Unlicensed) - Yes this answers my question, but this sounds like a business decision.  Do you consider Rholang a reasonable target for compilation?
  • Lucius Meredith - I would much rather have it compile to a VM.  Over time the goal is to modify the Rosette VM to be more like a RhoVM - rather than a full featured programming language - as a target for compilation.



  • Lucius Meredith: Only quoted processes can be dereferenced.  Former user (Deleted) - I don't get that.  
  • New is a binder in itself.  
  • The var needs to be typed.  It's a bug.  The compiler needs to inspect the type and determine that it needs a quoted process for this type.
  • You can have types of channels for which you know that you really want the fresh variable that you are constructing is really the name of a quoted process.  Michael Stay (Unlicensed) so when you give it a formula it has to have a quoted process that matches some formula.
  • Invocation - stamp out an instance and send its formals.  A contract itself is the instance.



  • The contract definition sets up a server which will make new instances of a contract.  when you send the formals associated with the name of the contract.  You get a forked off copy of the contract.  Mike - the compiler doesn't work like that.  Seems like we have a disagreement here, and we should not have everyone on the call.  Lucius Meredith - let's get a working group together and hammer this out.  Subgroup - Michael Stay (Unlicensed)Former user (Deleted)Former user (Deleted) Lucius Meredith
  • Lucius Meredith: Everyone else, what is the interest?  Chunk of folks left  at this point.

Action items