From dan at ikayzo.org Wed Aug 10 12:10:52 2005 From: dan at ikayzo.org (Daniel Leuck) Date: Wed, 10 Aug 2005 12:10:52 -1000 Subject: Welcome to the SDL Developers' Mailing List Message-ID: Hello Folks, Welcome to the SDL developers' mailing list. This list is for questions, comments, and discussion regarding the design and implementation of current and future versions of SDL (Simple Declarative Language.) SDL has been accepted as an official Ikayzo.org project by a unanimous vote of the review board. The SDL Confluence page, Jira installation, Subversion repository and beta 3 builds for Java and .NET will be posted this week. If you know of others that might benefit from using SDL let them know about the project! We have both an sdl-users and sdl-developers list. Daniel Leuck SDL Project Lead -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ml.ikayzo.org/pipermail/sdl-developers/attachments/20050810/ea5c3f0b/attachment.html From dan at ikayzo.com Sat Aug 13 17:25:09 2005 From: dan at ikayzo.com (Daniel Leuck) Date: Sat, 13 Aug 2005 17:25:09 -1000 Subject: [java-meetup] SDL In-Reply-To: <64f07e2c05081312191e9f74a7@mail.gmail.com> Message-ID: Hi Seth, > Ah, that certainly clears it up. Once I know that order is important, > it makes things more clear. After reading your question last night I added a "Tag Data Structure" section to the language guide that explains how things are structured and provides examples. > So how do I handle optional values? I'm assuming that optional values > _have_ to be attributes? > > How does my program know the diff between: > > java "com.example.classname" "foo" "bar" > > and > > java "com.example.classname" "bar" > > where "bar" and "foo" are semantically different? You could have optional values or attributes. Think of the values and attributes of a tag like a method call on a method with a fixed set of parameters with types and optionally a varags list (all the same type but with n elements) at the end. Right now you have to check this programmatically, but in SDL 2.0 we will introduce SDLS (SDL Schema) which will allow you to specify: For Tag Values: Typed parameters A variable length argument list at the end (like Object... in Java or params object[] in C#) For Tag Attributes Required attributes Optional attributes For Values and Attributes Ranges for scalars Regular expressions for Strings Possibly other types of constraints Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ml.ikayzo.org/pipermail/sdl-developers/attachments/20050813/c7c0b3ca/attachment.html From dan at ikayzo.com Sat Aug 13 17:36:10 2005 From: dan at ikayzo.com (Daniel Leuck) Date: Sat, 13 Aug 2005 17:36:10 -1000 Subject: [java-meetup] SDL In-Reply-To: <20050813212920.74068.qmail@web33109.mail.mud.yahoo.com> Message-ID: There have been a couple requests for this. I'll look into adding velocity like templating or EL within String literals. The templates would have access to environment variables. Dan _____ From: honolulu-java-meetup at yahoogroups.com [mailto:honolulu-java-meetup at yahoogroups.com] On Behalf Of la tompa Sent: Saturday, August 13, 2005 11:29 AM To: honolulu-java-meetup at yahoogroups.com Subject: RE: [java-meetup] SDL How about variable substitution? In shell scripts, it's common to do MY_HOME=/usr/java KITCHEN=$MY_HOME/kitchen For configuration files, this is a must. /Thomas ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs SPONSORED LINKS Open source software Open source help desk software Java developer _____ YAHOO! GROUPS LINKS * Visit your group "honolulu-java-meetup " on the web. * To unsubscribe from this group, send an email to: honolulu-java-meetup-unsubscribe at yahoogroups.com * Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. _____ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ml.ikayzo.org/pipermail/sdl-developers/attachments/20050813/680d4c72/attachment.htm From dan at ikayzo.org Wed Aug 17 12:11:49 2005 From: dan at ikayzo.org (Daniel Leuck) Date: Wed, 17 Aug 2005 12:11:49 -1000 Subject: Design Questions Message-ID: Hi Folks, Now that we have a suitable number of language geeks on the list, I want to pose a few design questions for discussion. The spec for SDL 1.0 is pretty much finalized. The only addition I might make is tightening up the timezones portion of date-time a bit. For SDL 2.0, there are a number of new things to figure out. They include possibly adding a few new literal types (I want to keep the number small) and the big addition: SDLS (SDL Schema.) ------- Starting with the literal types, the literal types that have been suggested include: byte - example 123b question: If byte is included should we support unsigned and signed bytes (123b or 123ub). Unsigned bytes would be represented as Short in Java and ubyte in C#. url - example http://server.com question: Should relative URLs be supported and if so, how would they look? ref - An reference type (suggested by Seth Ladd from this list) - Seth how should this look? constraint - A constraint type including regex for Strings, ranges for scalars, !=, and choice lists for any type. Examples: (!=null) (!=null, !="foo") (~=".*\.java") # regex test ('a' | 'b' | 'c') # choice list of chars (>0, <=100) range for integers The criteria for adding literal types is: A) Can they be naturally represented by a literal that looks similar to what is used in common programming languages. B) Will they be broadly applicable to many people, domains, etc. ------- For SDLS This is the big item. The questions are: 1. Should SDLS use SDL? I only want to do this if it is simple and natural, not for any puritanical reason. 2. What constraints should we support? I am thinking: - A value list with types and optionally a typed vararg list at the end - Mandatory attributes - Optional attributes - bounds on scalars - regexs for strings - value lists (choices) for any type Example: things required { values double (>=2,<5) int (>0) string (~="java.*", !=null) char... (!=null) attribute required "name" string (!=null) attribute required "size" int (>0, <=100) attribute optional "weight" int (>=0) attribute optional "favorite_char" char ('a' | 'b' | 'c') } Defines a required tag "things", which has a value list with a double, int, string, and an optional list of "n" characters all with constraints. "things" has two required attributes and two optional attributes all with types and constraints (showing examples of ranges, !=, and a choice list.) 3. Should SDLS be inlined at the top of SDL files, placed in a separate file, or should we support both? Comments, questions, opinions, and creative insults are welcome. Cheers, Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ml.ikayzo.org/pipermail/sdl-developers/attachments/20050817/f3af4ccc/attachment.html From jdb at getsu.com Wed Aug 17 12:41:55 2005 From: jdb at getsu.com (J. David Beutel) Date: Wed, 17 Aug 2005 12:41:55 -1000 Subject: Design Questions Message-ID: <4303BD33.1020509@getsu.com> Daniel Leuck wrote: > (!=null) > This might be RTFM, but what does a null string look like in an SDL file? Hopefully no Oracle-ish confusion with empty strings. > > For SDLS > > Example: > > things required { > > values double (>=2,<5) int (>0) string (~=?java.*?, !=null) char... > (!=null) > > attribute required ?name? string (!=null) > > attribute required ?size? int (>0, <=100) > > attribute optional ?weight? int (>=0) > > attribute optional ?favorite_char? char (?a? | ?b? | ?c?) > > } > Defines a required tag ?things?... > This looks good for simple cases, but defining types would be useful for complex schemas. Suppose you have two tags, "favorite" and "worst", both of which follow the "things" constraints. Using only literal types would get redundant. Cheers, 11011011 From dan at ikayzo.com Wed Aug 17 13:10:20 2005 From: dan at ikayzo.com (Daniel Leuck) Date: Wed, 17 Aug 2005 13:10:20 -1000 Subject: Design Questions In-Reply-To: <4303BD33.1020509@getsu.com> Message-ID: > Daniel Leuck wrote: > > > (!=null) > > > > This might be RTFM, but what does a null string look like in an SDL > file? Hopefully no Oracle-ish confusion with empty strings. Nope. Its unambiguous in SDL. "null" works the same way as Java or C# -it uses a null literal. empty_string "" null_value null See: http://sdl.ikayzo.org/docs/display/SDL/Language+Guide#LanguageGuide-literals > This looks good for simple cases, but defining types would be useful for > complex schemas. Suppose you have two tags, "favorite" and "worst", both > of which follow the "things" constraints. Using only literal types would > get redundant. Excellent point. Perhaps a "struct" keyword is in order. Dan From sethladd at gmail.com Wed Aug 17 14:42:20 2005 From: sethladd at gmail.com (Seth Ladd) Date: Wed, 17 Aug 2005 14:42:20 -1000 Subject: Design Questions In-Reply-To: <4303b661.23d1f3e1.1b55.ffffe238SMTPIN_ADDED@mx.gmail.com> References: <4303b661.23d1f3e1.1b55.ffffe238SMTPIN_ADDED@mx.gmail.com> Message-ID: <64f07e2c050817174256798898@mail.gmail.com> > ref - An reference type (suggested by Seth Ladd from this list) ? Seth how > should this look? I would have suggested a # to use as a pointer, but that's used for comments. What about something like: foo attr=@bar bar some object ? Also, I think you have a typo in your docs. In the Language Guide, you have this: # Note allowed: An anonymous tag with a single attribute (and no values)... size=5 and I think you meant to say "Not allowed:" ? Seth From dan at ikayzo.org Wed Aug 17 15:20:10 2005 From: dan at ikayzo.org (Daniel Leuck) Date: Wed, 17 Aug 2005 15:20:10 -1000 Subject: Design Questions In-Reply-To: <64f07e2c050817174256798898@mail.gmail.com> Message-ID: > I would have suggested a # to use as a pointer, but that's used for > comments. I just realized that will bite us for anchors in URLs if we introduce a URL literal as well. I suppose we could treat it specially for URLs... > foo attr=@bar > bar some object That makes sense. So bar is a tag elsewhere in the document (or another document?) Can it point to specific values or attributes within the referenced tag? > ? > > Also, I think you have a typo in your docs. In the Language Guide, > you have this: > > # Note allowed: An anonymous tag with a single attribute (and no values)... > size=5 > > and I think you meant to say "Not allowed:" ? Thank you. It has been fixed. Dan From jdb at getsu.com Wed Aug 17 15:28:33 2005 From: jdb at getsu.com (J. David Beutel) Date: Wed, 17 Aug 2005 15:28:33 -1000 Subject: Design Questions Message-ID: <4303E441.8070608@getsu.com> Daniel Leuck wrote: >>foo attr=@bar >>bar some object >> >> > >That makes sense. So bar is a tag elsewhere in the document (or another >document?) Can it point to specific values or attributes within the >referenced tag? > > Is this a substitution thing? E.g., PATH="$PATH:$JAVA_HOME/bin" Cheers, 11011011 From sethladd at gmail.com Wed Aug 17 15:31:16 2005 From: sethladd at gmail.com (Seth Ladd) Date: Wed, 17 Aug 2005 15:31:16 -1000 Subject: Design Questions In-Reply-To: <4303e27d.4242df8f.4946.2effSMTPIN_ADDED@mx.gmail.com> References: <64f07e2c050817174256798898@mail.gmail.com> <4303e27d.4242df8f.4946.2effSMTPIN_ADDED@mx.gmail.com> Message-ID: <64f07e2c0508171831670ced4f@mail.gmail.com> On 8/17/05, Daniel Leuck wrote: > > I would have suggested a # to use as a pointer, but that's used for > > comments. > > I just realized that will bite us for anchors in URLs if we introduce a URL > literal as well. I suppose we could treat it specially for URLs... Ah yeah, good point. Should work OK if you enclose it in quotes somehow. > > > foo attr=@bar > > bar some object > > That makes sense. So bar is a tag elsewhere in the document (or another > document?) Can it point to specific values or attributes within the > referenced tag? hehe Now you're talking SDLPath. The notation above simply references another Tag. If you wanted a value of a tag, you'd have to use @bar[0] (for "some") or @bar[1] (for "object") And of course you can do @bar['attr'] to refer to an attribute of a tag. And if you want to refer to nested tags, simply use '/'. For instance: example @ref/nested[0] ref value { nested foo } @ref/nested[0] == value foo Which is all well and good. I'm most interested in getting an equivalent to the xml id and idref constructs, but a more full featured SDLPath would be nice, especially to have to avoid traversing the giant graph by hand when it comes time to process it. Seth From sethladd at gmail.com Wed Aug 17 15:32:15 2005 From: sethladd at gmail.com (Seth Ladd) Date: Wed, 17 Aug 2005 15:32:15 -1000 Subject: Design Questions In-Reply-To: <4303E441.8070608@getsu.com> References: <4303E441.8070608@getsu.com> Message-ID: <64f07e2c050817183274df5a19@mail.gmail.com> > Is this a substitution thing? E.g., > PATH="$PATH:$JAVA_HOME/bin" ? Nope, it's a reference to another Tag in the file. Seth From dan at ikayzo.org Wed Aug 17 15:54:17 2005 From: dan at ikayzo.org (Daniel Leuck) Date: Wed, 17 Aug 2005 15:54:17 -1000 Subject: Design Questions In-Reply-To: <64f07e2c0508171831670ced4f@mail.gmail.com> Message-ID: > hehe Now you're talking SDLPath. The notation above simply references > another Tag. If you wanted a value of a tag, you'd have to use > @bar[0] (for "some") or @bar[1] (for "object") > > And of course you can do @bar['attr'] to refer to an attribute of a > tag. And if you want to refer to nested tags, simply use '/'. For > instance: > > example @ref/nested[0] > ref value { > nested foo > } > > @ref/nested[0] == value foo > > Which is all well and good. I'm most interested in getting an > equivalent to the xml id and idref constructs, but a more full > featured SDLPath would be nice, especially to have to avoid traversing > the giant graph by hand when it comes time to process it. I like this. I think all of this should be supported. Dan From sethladd at gmail.com Wed Aug 17 19:40:02 2005 From: sethladd at gmail.com (Seth Ladd) Date: Wed, 17 Aug 2005 19:40:02 -1000 Subject: Design Questions In-Reply-To: <4303ea7a.2e2b2561.0b48.3b35SMTPIN_ADDED@mx.gmail.com> References: <64f07e2c0508171831670ced4f@mail.gmail.com> <4303ea7a.2e2b2561.0b48.3b35SMTPIN_ADDED@mx.gmail.com> Message-ID: <64f07e2c05081722401f72c11f@mail.gmail.com> > I like this. I think all of this should be supported. Basically, just rip off XPath. :) Seth From dan at ikayzo.com Wed Aug 17 20:09:26 2005 From: dan at ikayzo.com (Daniel Leuck) Date: Wed, 17 Aug 2005 20:09:26 -1000 Subject: Design Questions In-Reply-To: <64f07e2c05081722401f72c11f@mail.gmail.com> Message-ID: > > I like this. I think all of this should be supported. > > Basically, just rip off XPath. :) I think it's a bit different because of the value lists, but we could copy the rest. Dan From sethladd at gmail.com Wed Aug 17 20:25:52 2005 From: sethladd at gmail.com (Seth Ladd) Date: Wed, 17 Aug 2005 20:25:52 -1000 Subject: Design Questions In-Reply-To: <430425f3.46adac18.79ac.2effSMTPIN_ADDED@mx.gmail.com> References: <64f07e2c05081722401f72c11f@mail.gmail.com> <430425f3.46adac18.79ac.2effSMTPIN_ADDED@mx.gmail.com> Message-ID: <64f07e2c050817232526d35589@mail.gmail.com> On 8/17/05, Daniel Leuck wrote: > > > I like this. I think all of this should be supported. > > > > Basically, just rip off XPath. :) > > I think it's a bit different because of the value lists, but we could copy > the rest. In XPath, they use the [] as the conditional expression. If we use that to reference values and attrs, how do we do conditionals? Oh, is this legal in SDL? example foo=1 example foo=2 If duplicate tag names are allowed, then we'll need to be able to say this: "return the tag with the name 'example' with an attr name foo equal to 2" in xpath, it's something like example[@foo='2'] Seth From dan at ikayzo.org Wed Aug 17 21:47:00 2005 From: dan at ikayzo.org (Daniel Leuck) Date: Wed, 17 Aug 2005 21:47:00 -1000 Subject: Design Questions In-Reply-To: <64f07e2c050817232526d35589@mail.gmail.com> Message-ID: Hi Seth, > In XPath, they use the [] as the conditional expression. If we use > that to reference values and attrs, how do we do conditionals? > > Oh, is this legal in SDL? > > example foo=1 > example foo=2 Yes. > If duplicate tag names are allowed, then we'll need to be able to say > this: > > "return the tag with the name 'example' with an attr name foo equal to 2" > > in xpath, it's something like example[@foo='2'] Hmmm... I suppose it would be good to keep with an existing standard (at least as close as possible.) We would have to remove the quotes because 2 is actually a number in SDL, but we could keep the rest. Dan From dan at ikayzo.org Fri Aug 19 14:01:42 2005 From: dan at ikayzo.org (Daniel Leuck) Date: Fri, 19 Aug 2005 14:01:42 -1000 Subject: SDL Repository Message-ID: Hi Folks, There were some problems with the SDL repository (extra folders, duplicate files, etc.) These have all been corrected. You may want to refetch from the repository if you are looking at or working on SDL. Note: SDL for Java requires Java 5 (JDK 1.5) SDL for .NET requires C# 2.0 (VisualStudio 2005 or other 2.0 compliant compiler and runtime) If you are using Eclipse you will want to download version 3.1 and set the compiler version to 1.5. Eclipse has its own compiler so the JDK version sitting on your machine doesn't matter. Cheers, Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ml.ikayzo.org/pipermail/sdl-developers/attachments/20050819/8a1b7610/attachment.htm