View previous topic :: View next topic |
Author |
Message |
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Wed Apr 04, 2007 7:26 pm Post subject: |
|
|
Wow... lengthy discussion about legality. Result:
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=51720
Dan wrote:
> Walter Bright Wrote:
>
>> LOL. I'm not sitting here with a pack of lawyers itching to sic them on
>> somebody. Heck, I've been putting more and more of phobos into the
>> public domain.
>
> Indeed, I've never suspected so. I tend to go on what people say is okay with them.
> According to the definition, practically any programming after having
seen an example of
> a for loop is an offense;
No, I don't think so. Copyright does not apply to algorithms, nor does
it apply to specific numbers or identifiers. You cannot copyright a
phrase. You cannot copyright quicksort, but you can copyright your
implementation of quicksort.
> so it's reasonable to be sure one isn't stepping on the wrong toes.
>
> I agree with the issues you raised, and don't intend to violate those.
>
> More or less though, I feel it would border on treason to the community if I continued
> to develop and release Walnut 2.x when you felt I'd essentially
produced a derived work
> that should remain constricted to GPL.
I don't have an opinion on whether you produced a derived work or not,
since I haven't looked at the code.
> Considering what you're last post stated, I can almost assume that you feel Walnut 2.x
> at Revision 44 is okay, and that I can continue work, as long as your
files aren't open.
> :p
>
> I pretty much just feel I need a yes or no from ya. :p
All I ask if that if any of it is a line by line translation from
dmdscript, or bases its structure or data structures on dmdscript, that
you scrap & rewrite those parts, and that you not look at the dmdscript
source as long as you're working on Walnut. _________________ nop
nop ; problem solved |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Wed Apr 04, 2007 10:57 pm Post subject: Re: Todo List |
|
|
These are the remaining ones:
dan.lewis wrote: |
Make sure all the file comment headers are right.
mark the linear key lookup for my custom associative arrays "/// OPT:"
Fix the constructor functions to be stored as an o["__value__"] = NF == &Number_constructor IFF they have properties/methods on the constructor.
Later I intend to finish implementing Value.to??? which is no small part of the back-end of the engine, as it works as parse???, toString, and new.
Following that, fleshing out the functions leaves us with a complete back-end? Am I legally permitted to examine Walter's DMDScript when I write this part, and still release it under BSD? If not, I'll do it myself and stumble through any bugs I hit. |
_________________ nop
nop ; problem solved |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Mon Apr 09, 2007 10:51 am Post subject: |
|
|
I finished the Math object's methods.
These are the remaining ones:
Mark the linear key lookup for my custom associative arrays "/// OPT:",
Fix the constructor functions to be stored as an o["__value__"] = NF == &Number_constructor IFF they have properties/methods on the constructor,
Finish implementing Value.to???,
Fix up Date_UTC,
Fleshing out the remaining unfinished stub functions |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Fri Apr 13, 2007 10:02 am Post subject: |
|
|
I made alot of changes to the core.d file yesterday, removing alot of excess code. I also stopped using initials for things to make the code more legible to others.
It used to be:
v.o[TEXT_property]
and:
v.nf[TEXT_nativefunction]
It now implements a single Value struct, which can be used as an Object or Function (opIndex, opCall, opIn_r are part of Value):
v[TEXT_property][TEXT_subproperty]
and:
v(self,cc,arguments);
or:
v[TEXT_methodname](self,cc,arguments);
I think that will make the source dramatically more legible. I also modified all the comments in preparation for a proper DDoc. I haven't written comments all the way through yet though. Next revision ought to be completely DDoc'd.
In addition, the /// OPTIMIZE:, /// BUG:, and /// INCOMPLETE: comments can be used as a standard to denote potential improvements. |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Sun Apr 22, 2007 9:34 pm Post subject: |
|
|
I wrote a unittest file up. It's hard to have actual unit tests for aspect oriented programs.
That said, the tests I wrote are painfully revealing. Lots and lots and lots of bugs. I think I used quite a few shortcuts around the Phobos standard library that came back to bite me in the ass.
Since there's no point continuing to implement more bugs, I'm going to fix what I've already written before I implement anything else. I'm also going to work on expanding the test code.
_________________ nop
nop ; problem solved |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Sat Jun 30, 2007 7:58 pm Post subject: |
|
|
The test files have been updated and now properly (I think) test Date stuff out. Date setFullYear and the timezone offset functions seem not to be working.
I will fix Date to 100%
Then do likewise for the Math object and so on.
I'm also hoping to learn of a better way to compile in the icon. I heard something about D having a resource compiler? That would eliminate the compile dependencies on a little known rc (or removing the lines from the make file)
~~
I think (I'll read carefully before I do it) that I ought to implement the constructor functions like so:
Global_Number() is called when someone types "Number(3);", while Number_prototype_constructor() is called when someone types "new Number(3)" or "Number.prototype.constructor()";
Is that right?
Right now the Global contains an Object at slot "Number", whereas it ought to contain a Function object.
~~
Internally, a function primitive ought be lazily promoted to a Function object when it needs the features of both; just like a number primitive or a boolean primitive.
I still haven't implemented the __value__ property found in JavaScript to store the value (the actual number) behind a Number object, or the actual function behind a Function object. Something on that object needs to point to the actual value?
Wish me luck. _________________ nop
nop ; problem solved |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Wed Jul 04, 2007 7:45 am Post subject: |
|
|
DDoc comments have been implemented, and ddoc output is now part of my builds. The requisite resource compiler (for the icon) is now Digital Mars' RCC rather than GoRC.
I've still yet to start working out the problems identified in the last post. _________________ nop
nop ; problem solved |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Fri Jul 13, 2007 11:43 pm Post subject: |
|
|
Resource Compiler
primitive calls versus constructor calls
Implemented ___value__ property for objects
DDoc Comments
The lexical analyzer (Global_eval) has been started.
Date still has obvious bugs. I performed a side-by-side testing of output against JScript, JavaScript Dmdscript, Walnut, and the ECMAScript spec and found some serious semantic variations.
I figured out that it would be easier to test the methods once I've got Global_eval working because then I can use the same source to test Walnut as the other engines I'm testing against. I can also use the official JavaScript conformance test suite (with over 10,000 test cases) _________________ nop
nop ; problem solved |
|
Back to top |
|
|
dan.lewis
Joined: 21 Feb 2007 Posts: 69 Location: Canada
|
Posted: Fri Dec 14, 2007 9:50 am Post subject: |
|
|
Regular Expression methods and constructors are done.
I've almost done all of my first-tries at that huge list of methods.
Todo:
Configure methods to handle native functions as arguments.
Complete remaining methods (except Global_eval)
Flesh out all the DDoc comments in the methods file.
Build the on-the-fly source interpreter (doesn't use bytecode and doesn't optimize, but actually skips evaluating code through fly-by branching; also for now it should skip functions, loops, and regular expressions)
Bind regular expression literals to new RegExp
Write non-optimizing machine-code compiler for loop and function code. _________________ nop
nop ; problem solved |
|
Back to top |
|
|
|