World: r3wp
[Core] Discuss core issues
older newer | first last |
Volker 26-Jun-2006 [4987] | uses some extra syntax. |
Graham 26-Jun-2006 [4988] | ok, let me try :) |
Volker 26-Jun-2006 [4989] | Pekr, the only thing to know is that all code is loaded and checked for syntax, and then executed. and before execution 'try has no real meaning, it could be"the" 'try, or a local or style or something. when 'do does the code it does no longer know the original source. So 'load has to report errors on its own. |
Graham 26-Jun-2006 [4990x2] | page: read http://www.compkarori.com/cgi-local/show-templates.r |
parse page [ thru <templates> copy code to </templates> ] | |
Volker 26-Jun-2006 [4992] | Btw rebol cheats and uses a calendar ;)>> 29-feb-2004 == 29-Feb-2004 >> 29-feb-2005 ** Syntax Error: Invalid date -- 29-feb-2005 ** Near: (line 1) 29-feb-2005 |
Graham 26-Jun-2006 [4993x2] | seems to work ... |
thanks. | |
Volker 26-Jun-2006 [4995] | np. the "#[object! [" does the magic. |
Pekr 26-Jun-2006 [4996] | Volker - isn't checking against the calendar too preliminary during the state of code load? :-) |
Volker 26-Jun-2006 [4997] | No, thats the basic equpment of a god loader. pda and such ;) |
Pekr 26-Jun-2006 [4998x3] | :-) |
even a cell phone? probably so :-) | |
in the case of tuple, is that kind of binary given, that the value can't be larger than 255? | |
Volker 26-Jun-2006 [5001x3] | *riing* "Hi" - "This isnt a date, you know?" :) |
Yes. | |
upto 12 bytes out the 16 AFAIK. | |
Pekr 26-Jun-2006 [5004] | so tuples can't be used for things like coordinaty space? |
Volker 26-Jun-2006 [5005x3] | No. |
Coimplex things need objects. | |
Until Carl finds a clever magic new way to keep performance. :) | |
Pekr 26-Jun-2006 [5008x2] | hmm, we have pair for such things ... |
I wonder if tuples should allow rotation? | |
Volker 26-Jun-2006 [5010x2] | the advantage is, the memory-layout is known, so the interpreter has an easier job. |
Hmm, shifting would be nice. I use them for version-numbers and colors, so i dont need rotation. but getting at thepart with the os would help. What usage benefits from rotation? | |
Pekr 26-Jun-2006 [5012] | dunno, but I saw someone mentioning the need for it already ... |
DideC 26-Jun-2006 [5013x2] | A language is not there to solve any particular needs, but to solve the needs of most of us Not the original sentence, but Carl said something like that, one day (maybe in a blog, or what is Altme?). |
As a comment, try "29/02/2006" in Excel and it will give you a nice "text" value, not a date value. Don't expect 'load to make this kind of choice ! | |
Gabriele 26-Jun-2006 [5015x2] | Petr, it's not "non recoverable", it's perfectly recoverable, you're just trying to recover when it is too late. |
load must make sure that the date is correct, because it must convert it to the internal format. 29-Feb-2006 simply cannot be converted and thus cannot be loaded. | |
Ladislav 26-Jun-2006 [5017] | Pekr: "I am not talking about string..." - Wrong! You are talking about string but refuse to admit it. Every source code is a string before LOAD transforms it to a block. (see my articles on this) |
Edgar 26-Jun-2006 [5018] | Like Pekr, I am confused here. It would seem that if the loader cannot convert a value into the internal format, then it should have a fall back of loading it as a string. Other values that Rebol can't convert to an internal datatype should convert it to a string to be consistent. |
Anton 26-Jun-2006 [5019x2] | That would cause rather strange bugs. Quite often, you wouldn't notice that you had made a syntax error. How would you know whether a string was an incorrectly written date or just some other string ? eg: How could you tell whether "jan 12" was intended to be a date! or not ? Maybe it's somebody's name and age in a string. |
I am completely happy with the way load works in this regard. A given date string must comply with the rebol syntax and have valid sub-values otherwise I don't want it. If messy data is coming in, just catch errors loading it from a string. Simple. | |
BrianH 26-Jun-2006 [5021x2] | Petr, 29-Feb-2006 is always an invalid date. You can't say "Under some condition it could be even valid date (leap year)" because the year 2006 is specified in that date, and 2006 is not a leap year. Data types have syntactic forms and semantic constraints. In order for the loader to recognize the data type, the syntactic form must be followed. In order for the resulting data to be valid, the semantic constraints must be obeyed. One such constraint is that date! values must correspond to a date on the calendar. Semantic violations are the bugs that all of that nasty exploit code does its job. |
Sorry, "code uses to do its job." | |
Ingo 26-Jun-2006 [5023] | Well, I checked with my paper-based calendar, and it isn't able to hancle 2006-02-29 either.So it may be OK that way ;-) |
Gabriele 27-Jun-2006 [5024x3] | load-relaxed: func [string /local res sp parseblk] [ sp: charset " ^/^-" parseblk: func [blk string /local val] [ parse string [ some [ #"[" string: (string: parseblk val: make block! 16 string append/only blk val) :string | #"(" string: (string: parseblk val: make paren! 16 string append/only blk val) :string | #"]" string: (either block? blk [return string] [append blk "]"]) | #")" string: (either paren? blk [return string] [append blk ")"]) | string: skip (either error? try [set [val string] load/next string] [ append blk copy/part string string: any [find string sp tail string] ] [ append blk :val ]) :string ] ] string ] parseblk res: make block! 16 string res ] |
>> load-relaxed {10-Feb-2006 20-Feb-2006 29-Feb-2006 1-Mar-2006} == [10-Feb-2006 20-Feb-2006 "29-Feb-2006" 1-Mar-2006] >> load-relaxed {10-Feb-2006 20-Feb-2006 [29-Feb-2006 1-Mar-2006]} == [10-Feb-2006 20-Feb-2006 ["29-Feb-2006" 1-Mar-2006]] | |
(just to give an idea) | |
Pekr 27-Jun-2006 [5027] | thanks :-) |
Anton 27-Jun-2006 [5028] | so... what are you going to do with "29-Feb-2006" ? |
Pekr 2-Jul-2006 [5029x3] | hmm, why send/attach sends jpeg in some non standard way? When I normally receive jpeg, first it is related to jpeg icon, second it is displayed in my email directly .... |
ah, the difference is: Content-Type: image/jpeg; name="2.jpg" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="2.jpg" --__REBOL--View--1.3.2.3.1--5318724__ Content-Type: application/octet-stream; name="bay.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bay.jpg" | |
rebol does not recognise filetype .... so it uses application/octec-stream .... too many gotchas here, maybe it would be better to construct complete headers. Will look into some alternative attachment sending scripts on rebol.org .... | |
Anton 2-Jul-2006 [5032x2] | Rebol doesn't have a jpeg datatype, so you would have to specify Content-Type to SEND. |
Yes, look for another example which does this already. | |
Pekr 2-Jul-2006 [5034] | thanks .... have you ever heard of this cid: protocol thingy? |
Volker 2-Jul-2006 [5035] | source send source build-attach-body source make-mime-header ;now to find that.. |
Pekr 2-Jul-2006 [5036] | ah, build-attach-body ... did not know there are other functions involved ... |
older newer | first last |